use strict; use warnings; use Benchmark q{cmpthese}; my $nullFile = q{/dev/null}; open my $nullFH, q{>}, $nullFile or die qq{open: $nullFile: $!\n}; my $rcConcat = sub { print $nullFH q{a} . q{!} x 5 for 1 .. 10000; }; my $rcList = sub { print $nullFH q{a}, q{!} x 5 for 1 .. 10000; }; cmpthese (-3, { Concat => $rcConcat, List => $rcList, }); close $nullFH or die qq{close: $nullFile: $!\n}; #### $ for i in 1 2 3 4 5 6 7 8 9 10; do > echo Run $i > ./spw613222 > done Run 1 Rate Concat List Concat 17.4/s -- -9% List 19.2/s 10% -- Run 2 Rate Concat List Concat 17.4/s -- -10% List 19.3/s 11% -- Run 3 Rate Concat List Concat 17.5/s -- -10% List 19.4/s 11% -- Run 4 Rate Concat List Concat 17.5/s -- -9% List 19.1/s 9% -- Run 5 Rate Concat List Concat 17.4/s -- -10% List 19.3/s 11% -- Run 6 Rate Concat List Concat 17.4/s -- -10% List 19.4/s 11% -- Run 7 Rate Concat List Concat 17.5/s -- -10% List 19.4/s 11% -- Run 8 Rate Concat List Concat 17.5/s -- -10% List 19.4/s 11% -- Run 9 Rate Concat List Concat 17.5/s -- -10% List 19.4/s 11% -- Run 10 Rate Concat List Concat 17.4/s -- -10% List 19.3/s 11% -- $