另外使用未初始化的值

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" ||.