John W. Krahn wrote: > > 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 <>;
Thanks John. I missed the 'has subdirectories'. Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>