use strict; use Benchmark 'cmpthese'; my @y_vals = my @x_vals = 1 .. 50; cmpthese(-10, { map => sub { return map "($x_vals[$_],$y_vals[$_])", 0 .. $#x_vals }, for => sub { my @ret; $ret[$_] = "($x_vals[$_],$y_vals[$_])" for 0 .. $#x_vals; return @ret; }, }); __output__ Benchmark: running for, map, each for at least 10 CPU seconds... for: 11 wallclock secs (10.19 usr + 0.00 sys = 10.19 CPU) @ 7536.80/s (n=76800) map: 11 wallclock secs (10.34 usr + 0.01 sys = 10.35 CPU) @ 7768.31/s (n=80402) Rate for map for 7537/s -- -3% map 7768/s 3% --