另外使用未初始化的值
Use of uninitialized value in addition
下面程序的结果给我一个警告。
Use of uninitialized value in addition (+)
为什么未初始化“+”?我该如何解决这个问题?
#/usr/bin/perl -w
use List::MoreUtils qw(pairwise);
my @result_list=();
my @list1=qw(1 23 321 11 324);
my @list2=qw(23 43 46 45 213 435);
@result_list=pairwise { $a + $b } @list1,@list2;
print "@list1\n@list2\n@result_list\n";
解决方法很简单:不要对不同长度的数组使用 pairwise
。或者,用零替换缺失值:
my @result_list = pairwise { ($a || 0) + ($b || 0) } @list1, @list2;
在 Perl 5.10+ 中,您可以使用 "defined-or" 运算符 //
而不是 "or" ||
.
下面程序的结果给我一个警告。
Use of uninitialized value in addition (+)
为什么未初始化“+”?我该如何解决这个问题?
#/usr/bin/perl -w
use List::MoreUtils qw(pairwise);
my @result_list=();
my @list1=qw(1 23 321 11 324);
my @list2=qw(23 43 46 45 213 435);
@result_list=pairwise { $a + $b } @list1,@list2;
print "@list1\n@list2\n@result_list\n";
解决方法很简单:不要对不同长度的数组使用 pairwise
。或者,用零替换缺失值:
my @result_list = pairwise { ($a || 0) + ($b || 0) } @list1, @list2;
在 Perl 5.10+ 中,您可以使用 "defined-or" 运算符 //
而不是 "or" ||
.