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.