#!/usr/bin/env perl use strict; use warnings; use autodie; use constant { LINES => 20_000, RECORD => 'X' x 100 . "\n", }; use Benchmark 'cmpthese'; open my $fh, '>>', '/dev/null'; cmpthese 0 => { singly => sub { print $fh RECORD for 1 .. LINES; }, concat => sub { print $fh join '', (RECORD) x LINES; }, list => sub { print $fh +(RECORD) x LINES; }, string => sub { print $fh RECORD x LINES; }, }; #### Rate singly list concat string singly 437/s -- -64% -71% -91% list 1205/s 176% -- -20% -74% concat 1497/s 243% 24% -- -68% string 4720/s 981% 292% 215% --