{ local $" = "\n"; print PROG "@array\n"; } #### print PROG join( "\n", @array), "\n"; #### use Benchmark; for ( 1..1000000 ) { push @a, "$i"; } open PROG, ">/dev/nul"; timethese( 100], { manual => sub {for $line ( @a ){ print PROG "$line\n";}}, join => sub {print PROG join( "\n", @a ), "\n" }, local => sub {local $"="\n"; print PROG "@a\n";} html => sub {print PROG @a;} }); ##### output -> $ perl t.pl Benchmark: timing 100 iterations of join, local, manual... html:133 wallclock secs (131.79 usr+ 0.15 sys = 131.94 CPU) @ 0.76/s (n=100) join: 45 wallclock secs (44.04 usr + 0.01 sys = 44.05 CPU) @ 2.27/s (n=100) local: 45 wallclock secs (44.51 usr + 0.00 sys = 44.51 CPU) @ 2.25/s (n=100) manual:275 wallclock secs (274.17 usr+ 0.04 sys = 274.21 CPU) @ 0.36/s (n=100)