http://www.perlmonks.org?node_id=965204


in reply to Multiple Combinatorics

My List::MapMulti module may help.

An example:

use 5.010; use List::MapMulti qw/iterator_multi/; my @letters = 'a' .. 'z'; my @numbers = 0 .. 9; my $iter = iterator_multi \@letters, \@letters, \@letters, \@numbers, +\@numbers; # This loops through every possible combination # of those lists. # while ( my @row = $iter->() ) { say join q(-), @row; }
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'