use strict; use warnings; use Benchmark qw(cmpthese); use List::Util qw(shuffle); my $count = 10000; my @numbers = 0..10000; cmpthese($count, { 'List::Util::shuffle' => sub { my @shuffled = shuffle @numbers }, 'Discipulus::shuffle' => sub { my @shuffled = sort { int rand(3) - 1 } @numbers }, 'Discipulus::--$|fle' => sub { my @shuffled = sort { --$| } @numbers }, }); __END__ Rate Discipulus::--$|fle Discipulus::shuffle List::Util::shuffle Discipulus::--$|fle 164/s -- -52% -95% Discipulus::shuffle 342/s 108% -- -89% List::Util::shuffle 3107/s 1793% 809% --