#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw(shuffle);
use Data::Dumper;
$Data::Dumper::Indent = 0;
unless (defined $ARGV[0]) {
$ARGV[0] = 5;
}
for (1 .. factorial($ARGV[0])) {
my @array = (0 .. ($ARGV[0] - 1));
@array = shuffle(@array);
print Dumper( \@array ) . "\n";
}
sub factorial {
my $n = shift;
my $f = 1;
$f *= $n-- while $n > 0;
return $f;
}