#! perl -slw use strict; use Time::HiRes qw[ time ]; my $start = time; $/ = \123; while( <> ) { if( /^03/ ) { my @fields = unpack "A2 A10 A33 A15 A19 A10 A3 A18 A6 A4 x3", $_; print join '/', @fields; } else { my @fields = unpack "A2 A98 A11 A9 x3", $_; print join '|', @fields; } } printf STDERR "Took %.3f for $. lines\n", time() - $start;