Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 使用未初始化的值进行加法运算_Perl_Warnings - Fatal编程技术网

Perl 使用未初始化的值进行加法运算

Perl 使用未初始化的值进行加法运算,perl,warnings,Perl,Warnings,以下程序的结果给了我一个警告 在加法中使用未初始化的值(+) 为什么未初始化“+”?我怎样才能解决这个问题 #/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 "@

以下程序的结果给了我一个警告

在加法中使用未初始化的值(+)

为什么未初始化“+”?我怎样才能解决这个问题

#/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";

解决方法很简单:不要在不同长度的数组上成对使用
。或者,将缺少的值替换为零:

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

在Perl 5.10+中,您可以使用“defined or”操作符
/
而不是“or”
|

修复方法很简单:不要在不同长度的数组上成对使用
。或者,将缺少的值替换为零:

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

在Perl 5.10+中,您可以使用“defined or”操作符
/
而不是“or”
|

,尽管在这种情况下,使用
/
而不是
|
并没有任何好处,因为默认值是0。尽管在这种情况下,使用
/
而不是
|
实际上没有任何好处,因为默认值为0。