# combines two pairs into a longer pair sub combine_codes_and_descriptions { my ($sofar, $next) = @_; if (!defined($sofar)) {return $next;} [$sofar->[0] . $next->[0], $sofar->[1] . ", " . $next->[1]]; } sub multi_dim_reduce { # $sofar optional my ($actionsub, $AoA, $combinesub, $sofar) = @_; if (@$AoA) { my $this_array = shift @$AoA; for my $elem (@$this_array) { my $subarray = [ @$AoA ]; multi_dim_reduce($actionsub, $subarray, $combinesub, $combinesub->($sofar,$elem)); } } else { $actionsub->($sofar); } } # The main event @data = ( [ [1, "Darth Vader"], [3, "Luke Skywalker"], [5, "Obi Wan Kenobi"], ],[ [0, "Lighsabre"], [5, "Blaster"], [9, "Rocket launcher"], ],[ [10, "Dagobah"], [14, "Kashyyyk"], ], ); multi_dim_reduce(sub {my ($c,$d) = @{$_[0]}; print "$c\t$d\n";}, [ @data ], \&combine_codes_and_descriptions);
-- @/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/; map{y/X_/\n /;print}map{pop@$_}@/for@/
In reply to Re: All Combinations of three arrays.
by fizbin
in thread All Combinations of three arrays.
by holli
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |