use Benchmark; my @numbers; for (1..10000) { my $random = int( rand(9000)) + 5; push @numbers, $random; } print scalar @numbers, " numbers created !\n"; my $iterations = 100; timethese($iterations, { "Schwartz" => sub { my @sorted = map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { my $num = $_; $num =~ /\d+/; [ $_, $num ]; } @numbers } }); timethese($iterations, { "Normal sort" => sub { my @sorted = sort {$b <=> $a} @numbers; } }); exit;