in reply to Building the loop arrayref for Algorithm::Loops::NestedLoops
yay closures!
use Algorithm::Loops qw( NestedLoops ); sub create_iterator_closure { my $p = $_[0]*2-1; return sub { [ $_+1..$p ] }; } sub output { my @args = @_; local $, = ", "; local $\ = "\n"; print(@args); return 1; } { my $depth = 4; my @iters; push(@iters, [ 0..1 ]); push(@iters, create_iterator_closure($_)) foreach (2..$depth); NestedLoops(\@iters, \&output); } __END__ Output ====== 0, 1, 2, 3 0, 1, 2, 4 0, 1, 2, 5 0, 1, 2, 6 0, 1, 2, 7 0, 1, 3, 4 0, 1, 3, 5 0, 1, 3, 6 0, 1, 3, 7 0, 1, 4, 5 0, 1, 4, 6 0, 1, 4, 7 0, 1, 5, 6 0, 1, 5, 7 0, 2, 3, 4 0, 2, 3, 5 0, 2, 3, 6 0, 2, 3, 7 0, 2, 4, 5 0, 2, 4, 6 0, 2, 4, 7 0, 2, 5, 6 0, 2, 5, 7 0, 3, 4, 5 0, 3, 4, 6 0, 3, 4, 7 0, 3, 5, 6 0, 3, 5, 7 1, 2, 3, 4 1, 2, 3, 5 1, 2, 3, 6 1, 2, 3, 7 1, 2, 4, 5 1, 2, 4, 6 1, 2, 4, 7 1, 2, 5, 6 1, 2, 5, 7 1, 3, 4, 5 1, 3, 4, 6 1, 3, 4, 7 1, 3, 5, 6 1, 3, 5, 7
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Building the loop arrayref for Algorithm::Loops::NestedLoops
by Zed_Lopez (Chaplain) on Sep 02, 2004 at 05:52 UTC |