open(OLD, "new.txt") or die "can't open new file: $!"; while() { s/whatever/somethingelse/; print NEW; } close(OLD); close(NEW) rename("new.txt", "old.txt");