print MERGE pack('A20A180A200A350',@vars);
####
#!/usr/local/bin/perl
use Benchmark;
use strict;
my $count = 10000;
my @lists = map { [chr($_+65),chr($_+66),chr($_+67),chr($_+68) ] } 0..22;
open(FH1,'>/tmp/x') or die "$!\n";
open(FH2,'>/tmp/y') or die "$!\n";
timethese ($count, { 'pack' => '&use_pack', 'printf' => '&use_printf' } );
sub use_pack {
foreach (@lists) {
print FH1 pack('A20A180A200A350',@{$_});
}
}
sub use_printf {
foreach (@lists) {
printf FH2 "%-20s%-180s%-200s%-350s", @{$_} ;
}
}
####
Benchmark: timing 10000 iterations of pack, printf...
pack: 21 wallclock secs (10.10 usr + 9.55 sys = 19.65 CPU) @ 508.91/s (n=10000)
printf: 24 wallclock secs (10.90 usr + 9.72 sys = 20.62 CPU) @ 484.97/s (n=10000)
Benchmark: timing 10000 iterations of pack, printf...
pack: 21 wallclock secs (10.03 usr + 9.75 sys = 19.78 CPU) @ 505.56/s (n=10000)
printf: 23 wallclock secs (11.88 usr + 10.72 sys = 22.60 CPU) @ 442.48/s (n=10000)