use File::Temp qw/tempfile/; open $FIN, "<$file1" or die .... my ($fh, $fname) = tempfile(); print $fh "FIRST LINE\n"; print $fh $_ while <$FIN>; close $FIN; close $fh; rename $fname, $file1;