use Benchmark; Benchmark::cmpthese(shift, { a => q{ $a[++$i] = ""; $a[$i] .= "a" for 1 .. 10000; }, b => q{ $b[++$j] = "b" x 10000; $b[$j] = ""; $b[$j] .= "b" for 1 .. 10000; }, }); #### Benchmark: running a, b for at least 1 CPU seconds... a: 1 wallclock secs ( 1.03 usr + 0.01 sys = 1.04 CPU) @ 124.04/s (n=129) b: 1 wallclock secs ( 1.08 usr + 0.01 sys = 1.09 CPU) @ 191.74/s (n=209) Rate a b a 124/s -- -35% b 192/s 55% --