END { open FH, "< $0" or warn "Failed to preserve state... couldn't open '$0', $!" and exit(1); local $/; $_ = ; s/my \$var=$oldvalue/my \$var=$var/m; open FH, "> $0" or warn "Failed to preserve state... couldn't write to '$0', $!" and exit(1); print FH $_; close $file; }