Perl-цикл между двумя массивами - PullRequest
0 голосов
/ 22 ноября 2010
@a1 = qw(1 2 3) 
@a2 = qw(1 2 3 4 5)

смотря, что результат вычисления между a1 и a2 будет вставлен как значение a2 [0].Например, 1 + 1 = 2, входящий в a2 [0] как 2, затем следующий расчет будет 2 + 2 (a2 [0] + a1 [1]), что приведет к a2 [0] = 4, затем 4 + 3(a2 [0] + a1 [2]), в результате чего a2 [0] = 7, затем перейдите к следующей строке в a2 и выполните ту же функцию для a1.

, когда все произнесено и сделано результатбудет от print @a2;

7 8 9 10 11

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Использование соответствующих функций списка:

#!/usr/bin/env perl

use strict;
use warnings;

use List::Util      qw( sum   );
use List::MoreUtils qw( apply );

my @a1 = qw( 1 2 3     );
my @a2 = qw( 1 2 3 4 5 );

my $sum = sum(@a1);

@a2 = apply { $_ += $sum } @a2;

См:

Также см. Ответ Фергала , что в данном случае проще.

2 голосов
/ 22 ноября 2010

Таким образом, по существу, вы добавляете сумму значений в первом массиве к каждому элементу во втором массиве.

my $total = 0;
($total += $_) for @a1;
($_ += $total) for @a2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...