开发者

Perl loop between two arrays

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

looking have the resultant of a calculation between a1 and a2 be inserted as the value of a2[0]. example would be 1+1 = 2 going into a2[0] as 2, then the next calculation would be 2+2 (a2[0] + a1[1]) resulting in a2[0] = 4, then 4+3 (a2[0]+a1[2]) resulting in a2[0] = 7, then move on to the next line in a2 and perform the same function against a1.

when all said and done the resul开发者_如何学Pythont would be from print @a2;

7 8 9 10 11


So essentially you're adding the total of the values in the first array to each element in the second array.

my $total = 0;
($total += $_) for @a1;
($_ += $total) for @a2;


Using relevant list functions:

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

Refer:

  • List::Util
  • List::MoreUtils

Also refer Fergal's answer, which is simpler in this case.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜