一般我们同时遍历多个相关的列表时,往往用数组下标遍历:
my @a = ( ... );
my @b = ( ... );
my @c;
foreach my $i ( 0 .. $#a) {
my ( $a, $b ) = ( $a[$i], $b[$i] );
push @c, $a + $b;
}
其实还可以这样:
use List::MoreUtils qw(pairwise);
my @c = pairwise { $a + $b } @a, @b;
pairwise只适合两个列表,三个列表这样做:
use List::MoreUtils qw(each_array);
my $ea = each_array( @a, @b, @c );
my @d;
while ( my ( $a, $b, $c ) = $ea->() ) {
push @d, $a+$b+$c;
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!