#!/usr/bin/perl use warnings; use strict; use Benchmark ':all'; use List::Util; use Math::Random::MT::Auto; my @sd; my %shtest = ( 'LU' => sub { my @r = List::Util::shuffle(@sd); }, 'MRMA' => sub { my @r = @{Math::Random::MT::Auto::shuffle(@sd)}; }, ); for my $N (map { 1 + 2 * 3**$_ } 0 .. 8) { print "\nTesting on $N elements\n"; @sd = map { rand } 1 .. $N; cmpthese(-10, \%shtest); } #### 'MRMA' => sub { Math::Random::MT::Auto::shuffle(\@sd); }