Next | Trivial Utilities | 154 |
Here's what I should have done:
unless (open IN, "< $file") { warn "Couldn't open file `$file' for reading: $!; skipping.\n"; next; } unless (rename $file, "$file.$$.tmp") { warn "Couldn't rename file `$file': $!; skipping.\n"; next; } unless (open OUT, "> $file") { warn "Couldn't open file `$file' for writing: $!; skipping.\n"; rename "$file.$$.tmp", $file or die "Couldn't restore $file.$$.tmp to $file: $!; ABORTING";
} ... unlink "$file.$$.tmp";
I suppose it would have been cleverer to use Perl's -i.bak feature:
local $^I = ""; while (<>) { ... }
I wish I had thought of it at the time
Next | Menu | Copyright © 2012 M. J. Dominus |