{ local $/ = undef; $buffer = <IN>; }
use strict; use warnings;
Here's a quick untested rewrite I did to highlight the points I made.
use strict; use warnings; use File::Find; my @dirs = qw( . ); find ( { wanted => \&change, no_chdir => 1}, @dirs ); sub change { my $file = $File::Find::name; if ( -f $file && $file =~ /\.html$/ ) { open(IN, $file) or warn "CANT OPEN FILE!\n"; my $buffer; { local $/ = undef; $buffer = (<IN>); } close IN; my $changecount = ($buffer =~ s/OLDWORD/NEWWORD/gi); if ($changecount) { open(OPF,">$file") or warn "NOT OPENING FILE FOR MOD, $!\n +"; print OPF "$buffer"; close OPF; } } }
This could be optimized and shrunk I know, but I'll leave that to the gurus. I hope this helps.
Take care,
bcb
EDITED: Per a notice from Oaklander, the script would enter directories, but was not changing any of the files. A quick modification changed the call to File::Find from
find ( \&change, @dirs ); to find ( { wanted => \&change, no_chdir => 1}, @dirs );.
I tested the code and it works as Oaklander needs.
In reply to Re: (Buzzcutbuddha - Some Corrections) - File Find
by buzzcutbuddha
in thread File Find
by oaklander
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |