until( eof DATA ) { read DATA, my $header, BLOCKHDR or die; ## Do stuff with $header; for my $cdr ( 1 .. MAXRECORD ) { read DATA, my $record, CDRLEN or die; ## Do stuff with $record } read DATA, my $trailer, BLOCKTRL or die; ## Do stuff with $trailer }