else { return map { my @a = @$arr; my $e = splice @a, $_, 1; map [ $e, @$_ ], perms( \@a ); } 0..$#$arr; }