Math-Permute-Array

 view release on metacpan or  search on metacpan

lib/Math/Permute/Array.pm  view on Meta::CPAN

  my $i = 0;
  while($rest != 0){
    $res[$i] = splice @array, $rest % ($#array + 1), 1;
    $rest = int($rest / ($#array + 2));
    $i++;
  }
  push @res, @array;
  return \@res;
}

sub Apply_on_perms(&@)
{
  my $func = shift;
  my $array = shift;
  return undef unless (defined $func and defined $array);
  my $rest;
  my $i;
  my $j;
  my @array = @{$array};
  my $size = $#array+1;
  my $card = factorial($size);



( run in 0.225 second using v1.01-cache-2.11-cpan-49f99fa48dc )