use strict; use warnings; my $infile = ... my $outfile = ... open IN ... open OUT ... while(){ ... print OUT $_; } close IN; close OUT; rename $infile, $outfile or die "COULDN'T RENAME ($infile) to $outfile): $!";