Somebody needs to scramble for perldoc -f read because
read FILEHANDLE,SCALAR,LENGTH,OFFSET
... Returns the number of characters actually read, 0 at end of file, or undef if there was an error (in the latter case $! is also set). ...
[emphases added]
In this particular case, you're probably not going to be sitting at the end of the file just after opening it (unless the file's empty) and only one read is ever done, but a statement like
read($fh1, my $rec1, $length, $offset) or die("Can't read $file1");
will die at the end of the file, and that's not proper handling of an error condition. (It would have been nice to have had $! in the die message, too. Some study of the purpose of the OFFSET parameter might also be profitable.)
Give a man a fish: <%-{-{-{-<