Сумма четных / нечетных показателей (то, что вы просили, но не то, что вы хотите [1] ):
use List::Util qw( sum ); # Or: sub sum { my $acc; $acc += $_ for @_; $acc }
my $sum_of_even_idxs = sum grep { $_ % 2 == 0 } 0..$#nums;
my $sum_of_odd_idxs = sum grep { $_ % 2 == 1 } 0..$#nums;
Сумма четных / нечетных значений (что вы такжеспросил, но не то, что вы хотите [1] ):
use List::Util qw( sum ); # Or: sub sum { my $acc; $acc += $_ for @_; $acc }
my $sum_of_even_vals = sum grep { $_ % 2 == 0 } @nums;
my $sum_of_odd_vals = sum grep { $_ % 2 == 1 } @nums;
Сумма значений в четных / нечетных индексах (что, по-видимому, вы хотите):
use List::Util qw( sum ); # Or: sub sum { my $acc; $acc += $_ for @_; $acc }
my $sum_of_vals_at_even_idxs = sum @nums[ grep { $_ % 2 == 0 } 0..$#nums ];
my $sum_of_vals_at_odd_idxs = sum @nums[ grep { $_ % 2 == 1 } 0..$#nums ];
Учитывая, что вы знаете, сколько элементов у вас есть, вы можете использовать следующее:
use List::Util qw( sum ); # Or: sub sum { my $acc; $acc += $_ for @_; $acc }
my $sum_of_vals_at_even_idxs = sum @nums[0,2,4,6,8,10];
my $sum_of_vals_at_odd_idxs = sum @nums[1,3,5,7,9];
- Я включил их на тот случай, если кому-то понадобятся эти земли в этих вопросах и ответах.