#!/usr/bin/env perl use warnings; use strict; use Benchmark 'cmpthese'; use List::Util 'shuffle'; use Data::Dumper; my @sorted; my @input = map { 'F' x (int(rand(100))+1) } 1 .. 1000; #print Dumper(\@input); cmpthese(1000, { simple => sub { @sorted = sort { length($a)<=>length($b) } shuffle @input; }, schwartz => sub { @sorted = map { $$_[0] } sort { $$a[1]<=>$$b[1] } map { [$_,length($_)] } shuffle @input; }, }); #print Dumper(\@sorted);