sub fisher_yates_shuffle { my $array = shift; my $i; my $mmCount = @$array; datePrint "Executing Fisher-Yates shuffle up to $mmCount times...\n"; my $mmStatus = 10000; for ($i = @$array; --$i; ) { if (--$mmStatus == 0) { datePrint "$i more to go...\n"; $mmStatus = 1000000; } my $j = int rand ($i+1); next if $i == $j; @$array[$i,$j] = @$array[$j,$i]; } }