in reply to Combinations of multiple arrays

glob will also do the trick

my $glob = join ',', map '{'.join(',', @$_).'}', @list; while (my $s = glob($glob)) { print "$s\n"; }