2016-04-05 84 views
0

以下程序的結果給我一個警告。另外使用未初始化的值

除了使用未初始化值的(+)

爲什麼未初始化的 「+」?我怎樣才能解決這個問題?

#/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\[email protected]\[email protected]_list\n"; 

回答

3

修復很簡單:不要在不同長度的數組上使用pairwise。或者,用零替換缺失值:

my @result_list = pairwise { ($a || 0) + ($b || 0) } @list1, @list2; 

在Perl 5.10+,您可以使用「定義 - 或」操作//而不是「或」 ||

+0

儘管在這種情況下,使用'//'代替'||'沒有任何好處,因爲您的默認值爲0。 – cjm