X-Git-Url: http://git.shiar.net/perl/file-rewrite.git/blobdiff_plain/d72f22ff8c2dd2d763a83aeb19eeca6c2162cacc..be4cabbf32b3220dfe687065b992ca15cdfbf4c8:/lib/File/Rewrite.pm diff --git a/lib/File/Rewrite.pm b/lib/File/Rewrite.pm index 2b05ded..b3bf3d7 100644 --- a/lib/File/Rewrite.pm +++ b/lib/File/Rewrite.pm @@ -13,17 +13,18 @@ sub fileset { my $tmpname = "$filename.$$.tmp"; my $changes = 0; - $search = $replace if not defined $search; + $search = $replace if @_ < 3; # generate a single regex to emulate smart match $search = [$search] unless ref $search eq 'ARRAY'; - $search = join('|', map { ref $_ ? $_ : "^\Q$_\E\$" } @$search); + @$search = grep { defined } @$search; + $search = @$search ? join('|', map { ref $_ ? $_ : "^\Q$_\E\$" } @$search) : undef; open my $src, '<', $filename; open my $dest, '>', $tmpname; while (readline $src) { chomp; - if ($_ =~ /$search/s) { + if (defined $search and $_ =~ /$search/s) { if (ref $replace eq 'ARRAY') { if (@$replace and $_ eq $replace->[0]) { shift @$replace;