perl遍历多个数组

时间:2018-07-26 16:34:50

标签: perl

我需要遍历未知长度的未知数量的数组。 假设我有这个数据

my @aAry = qw ( a b c );
my @bAry = qw ( d );
my @cAry = qw ( e f g h );

可能还有更多。 我会做一个已知数量的事情:

for (my $i = 0; $i < scalar(@aAry); $i++) {
  for (my $j = 0; $j < scalar(@bAry); $j++) {
    for (my $k = 0; $k < scalar(@cAry); $k++) {
      $str = $aAry[$i].'.'.$bAry[$j].'.'.$cAry[$k];
      print "${str}\n";
    }
  }
}

结果将是每个列表中每个项目的所有可能组合(3个宽)。

a.d.e , a.d.f, a.d.g, a.d.h, b.d.e, b.d.f, b.d.g, b.d.h, c.d.e, c.d.f, c.d.g, c.d.h

3个宽(3个数组) * 4(最宽的阵列) = 12种组合 可能有2到10个阵列,宽度可能是1到200宽,我需要生成N个M宽阵列的所有可能组合 我在想,我可以将它们全部放入一个多维数组中,而只是跳过

my @mdARY = ( qw (a b c)
            , qw ( d )
            , qw ( e )
            );
for ($i = 0; $i < scalar(@mdARY); $i++) {
  for ($j = 0; $j < scalar(@{$mdARY[$i]}); $j++) {

但这也不行。 也许递归???

0 个答案:

没有答案