in reply to File Find
{ 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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: (Buzzcutbuddha - Some Corrections) - File Find
by oaklander (Acolyte) on Jan 15, 2002 at 20:50 UTC | |
|
Re: Re: (Buzzcutbuddha - Some Corrections) - File Find
by oaklander (Acolyte) on Jan 16, 2002 at 00:35 UTC | |
by buzzcutbuddha (Chaplain) on Jan 16, 2002 at 01:30 UTC | |
by oaklander (Acolyte) on Jan 16, 2002 at 17:39 UTC | |
by buzzcutbuddha (Chaplain) on Jan 16, 2002 at 18:34 UTC |