in reply to Removing the first record in a file containing fixed records

After the first record, increase the record length...to 1 MB or perhaps several MB. There's no reason to read the entire file one record at a time. Or perhaps (same idea but less code on your part):
use File::Copy qw(copy); sysread(recordfile, $record, $record_length); copy( \*recordfile, \*newrecordfile );