Chetak Sasalu wrote:
>
> Hi,
Hello,
> I have to search and replace 'foo' to 'bar' in all the files in a
> directory(has subdirectories).
> The files are about 40k in size.
>
> On the command line I would do it as,
> find ./mydir/ -type f -print | xargs perl -pi -e 's/foo/bar/'
>
> No backup of the original files required.I am brave.
>
> What is the most efficient way to implement this inside a perl program ?
> There are about 30 files to be processed.
> I went through perldoc perlrun and saw the code.
>
> I thought it as a criminal waste of time to try and modify that code for
> my purpose, when I can ask you folks :-)
use File::Find;
local ( $^I, @ARGV ) = '';
find( { no_chdir => 1, wanted => sub { -f and push @ARGV, $_ } }, './mydir' );
s/foo/bar/g, print while <>;
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>