in reply to Permutation seed generator

Starting with my code from a few days ago, Re^3: Searching for a Permutation Algorithm for nPr where n != r (A::Loops), I only had to make almost trivial changes (update; and then I mostly undid those two changes because I realized from your reply elsewhere that you only wanted certain lengths, not all lengths -- so I added two more changes to make the code more general and demonstrate that):

#!/usr/bin/perl -w use strict; use Algorithm::Loops qw( NestedLoops NextPermute ); my @items= qw( prefix first middle last title ); my $choose= 3; my $iter= NestedLoops( [ [ 0..$#items ], ( sub { [ $_+1 .. $#items ] } ) x ( $choose - 1 ), ], # Uncomment next line if you want all sizes <= $choose # { OnlyWhen => 1 }, ); my @choice; while( @choice= sort @items[$iter->()] ) { do { print "@choice\n"; # replace above line with your code } while( NextPermute(@choice) ); }

Sorry, I don't have access to Perl from here at the moment, so it is untested. Update: Thanks to tkil for testing and other feedback.

- tye