配对数组元素而不重复

时间:2014-07-06 13:39:45

标签: perl

我有两组动态数组,它们有一些像这样的元素:

 my @arr1 = qw( e1 e2 );
 my @arr2 = qw( n1 n2 );

我想创建诸如(e1,n1),(e1,n2),(e2,n1)和(e2,n2)或

之类的对
 my @arr1 = qw( e1 );
 my @arr2 = qw( n1 n2 );

获取(e1,n1), (e1,n2)

但我不知道如何创建它并将其存储在哈希中进行处理。

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

my @arr1 = qw( e1 e2 );
my @arr2 = qw( n1 n2 );

for my $x (@arr1) {
   for my $y (@arr2) {
      print("($x,$y)\n");
   }
}

如果您有任意数量的数组:

use Algorithm::Loops qw( NestedLoop );

my @arrs = (
   [qw( e1 e2 )],
   [qw( n1 n2 )],
);

my $iter = NestedLoops(\@arrs);

while (my @pick = $iter->()) {
   print("(" . join(',', @pick) . ")\n");
}
相关问题