use strict; use warnings; use Tie::File; $/ = \96; my $start = time; tie my @records, 'Tie::File', $ARGV[ 0 ]; shift @records; untie @records; printf "Time: %f seconds\n", time() - $start; __END__ 2008-07-18 14:17 527,999,712 500MB.fixed 1 File(s) 527,999,712 bytes 0 Dir(s) 2,320,445,440 bytes free C:\test>junk7 500MB.fixed Time: 233.000000 seconds C:\test>dir 500MB.fixed Volume in drive C has no label. Volume Serial Number is BCCA-B4CC Directory of C:\test 2008-07-18 23:34 527,999,616 500MB.fixed 1 File(s) 527,999,616 bytes 0 Dir(s) 2,320,416,768 bytes free