http://qs321.pair.com?node_id=429966


in reply to Seperating Compound Lists

my @sets; for $x(1..3){ my @products; for $y(1..3){ $pro = $x ** $y; push @products, $pro; } push @sets, \@products; } use Data::Dumper; print Data::Dumper->Dumper(\@sets);

cheers,

J

Replies are listed 'Best First'.
Re^2: Separating Compound Lists
by Roy Johnson (Monsignor) on Feb 11, 2005 at 02:40 UTC
    And most of the time, a for/push combination converts very naturally to a map:
    my @sets; for my $x (1..3){ my @products = map { $x ** $_ } (1..3); push @sets, \@products; } use Data::Dumper; print Dumper(\@sets);
    Then we still have a for/push. Since we have to use $_ for our loop variable in map, it might seem a little tricky, but we're nesting these, so we can do this:
    my @sets = map { my $x = $_; # Copy outer loop variable my @products = map { $x ** $_ } (1..3); \@products; } (1..3);
    Of course, there's no real need for the @products array:
    my @sets = map { my $x = $_; # Copy outer loop variable [map { $x ** $_ } (1..3)]; } (1..3);

    Caution: Contents may have been coded under pressure.