2010-11-21 73 views
0
做事海誓山盟

我希望把这样的事情在我的编码使两个数组在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和等等。

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

'@ a2 X + @ a1' in Perl6 :) – 2010-11-21 17:25:58

回答

4

一种方法是将有两个嵌套调用map

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

很好,谢谢。 – 2010-11-21 17:15:04

0

您可以循环嵌套做到这一点很简单。

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); 
+0

这个工程也很棒,从未使用Data:Dumper。感谢你的回答。 – 2010-11-21 18:22:13