2

私は配列の配列を持っています。

@a=([1,2,3],['b','r','g'],['L','X']);

そして、この結果を得たい:

@b=(
[1,'b','L'],[1,'b','X'],
[1,'r','L'],[1,'r','X'],
[1,'g','L'],[1,'g','X'],

[2,'b','L'],[2,'b','X'],
[2,'r','L'],[2,'r','X'],
[2,'g','L'],[2,'g','X'],

[3,'b','L'],[3,'b','X'],
[3,'r','L'],[3,'r','X'],
[3,'g','L'],[3,'g','X'],
)

入力配列 @a には 2 ~ 6 個のネストされた配列があります

cpan でこの関数を見つける方法がわかりません。

4

2 に答える 2

5
use Algorithm::Loops qw( NestedLoops );
my @b; NestedLoops(\@a, sub { push @b, [ @_ ] });
于 2013-09-30T21:04:23.497 に答える
1

なぜ cpan なのですか?

use strict; use warnings;
use Data::Dumper;
my @a=([1,2,3],['b','r','g'],['L','X']);

my @b;
foreach my $i (@{$a[0]}){
    foreach my $c (@{$a[1]}){
        foreach my $k (@{$a[2]}){
            push @b, [$i, $c, $k];
        }
    }
}

print Dumper(\@b);
于 2013-09-30T20:51:54.827 に答える