use File::Copy; open(RFH, "WriteFile.h") or die "Trying:$!"; while() { s/search/replace/; print WFH; } close RFH; close WFH; move ("WriteFile.h", "ReadFile.h") or die "With a vengance:$!"; #### $^I = '.old'; @ARGV = ("header.h"); while (<>) { s/search/replace/; print; }