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


in reply to Re^3: Challenge: Generate fixed size combination across groups without duplicates
in thread Challenge: Generate fixed size combination across groups without duplicates

I used you code for my own problem and it worked fine in the beginning but the moment I add another array to @groups the order of the arrays changes intern.I have little experiences with subs so I don't know how to change the code to make sure the order stays the same?

my @groups=( [qw( yes no 0 )], [qw( yes all 0 )], [qw( all stop 0 )], [qw( 1 0 )], [qw( 1 0 )], ); my @names=('rscode','nonsyn','aac','splice','var'); my $fixed_size=scalar(@names); my ($combo,$count)= create_combo($fixed_size,\@groups); sub create_combo { my @array; my $count=0; my $fixed_size= $_[0]; my $groups=$_[1]; for my $fixed_size_groups ( combine( $fixed_size, @{$groups} ) ) { Algorithm::Loops::NestedLoops $fixed_size_groups, sub { push @array,@_; print "@_\n"; $count++; }; return (\@array,$count); } }

It gives as result

1 all 1 yes yes 1 all 1 yes all 1 all 1 yes 0 ....

which are the right combinations but not the right order of the elements! Any help is much appreciated.