使两个数组在Perl中相互作用

时间:2010-11-21 16:41:29

标签: perl

我希望在我的编码中加入这样的东西

@a1 = qw(1 2 3 )

@a2 = qw(5 3 7 8 9 3 5 6 8 2)

@ a1 @ a2 中的项目数量需要能够改变大小

@ a3 = @ a1的每一行加上@ a2的每一行所以它将是5 + 1 5 + 2 5 + 3 3 + 1 3 + 2 3 + 3 7 + 1 7 + 2,依此类推。< / p>

with a result of 
6 7 8 4 5 3 8 9 etc

2 个答案:

答案 0 :(得分:4)

一种方法是进行两次嵌套map调用:

my @a3 = map { my $a = $_; map { $_ + $a } @a1 } @a2;

答案 1 :(得分:0)

您可以使用嵌套for循环非常简单地完成此操作。

use strict;
use warnings;
use Data::Dumper;

my @a1 = qw(1 2 3);
my @a2 = qw(5 3 7 8 9 3 5 6 8 2);

my @c;
foreach my $a2 (@a2)
{
    foreach my $a1 (@a1)
    {
        push @c, $a1 + $a2;
    }
}

print Dumper(\@a1, \@a2, \@c);