sub fileset {
my ($filename, $replace, $search) = @_;
- die if defined $replace;
+ $search = $replace if not defined $search;
my $tmpname = "$filename.$$.tmp";
my $changes = 0;
open my $src, '<', $filename;
open my $dest, '>', $tmpname;
while (readline $src) {
+ chomp;
if ($_ =~ (ref $search ? $search : qr/^\Q$search\E$/)) {
+ if (defined $replace and $_ eq $replace) {
+ undef $replace;
+ }
+ else {
$changes++;
next;
+ }
}
print {$dest} $_, $/;
}
close $src;
+ if (defined $replace) {
+ $changes++;
+ print {$dest} $replace, $/;
+ }
close $dest;
if ($changes) {