9 - Benchmark use Benchmark qw(:all); my (@foo, @bar); my @normal = (1..100_000); my @reverse = reverse @normal; cmpthese(100,{ 'normal' => sub { @foo = sort @normal }, 'reverse' => sub { @bar = sort @reverse }, }); Benchmark: timing 100 iterations of normal, reverse... normal: 70 wallclock secs (45.48 usr + 0.24 sys = 45.72 CPU) @ 2.19/s (n=100) reverse: 70 wallclock secs (46.35 usr + 0.23 sys = 46.58 CPU) @ 2.15/s (n=100) Rate reverse normal reverse 2.15/s -- -2% normal 2.19/s 2% --