use strict; use warnings; my $filename = 'logfile.txt'; my $backupfile = 'logfile.backup'; open(my $handle, '>>', $filename) or die; link $filename, $backupfile; unlink($filename); print $handle "First line\n"; syswrite($handle, "Second line\n"); close($handle); rename $backupfile,$filename; # ok to fail if $filename still exists unlink $backupfile;