rename $filename, $filename.".bak" or die "$!"; open(IN, $filename.".bak") or die "$!"; open(OUT, ">".$filename) or die "$!"; while () { s/content/newcontent/g; print OUT; } close OUT; close IN; #### open(IN, $filename) or die "$!"; open(OUT, ">".$filename.".new") or die "$!"; while () { s/content/newcontent/g; print OUT; } close OUT; close IN; rename $filename.".new", $filename or die "$!";