2016-04-05 1 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

 Смежные вопросы

  • Нет связанных вопросов^_^