#!/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", @{$_} ; } }