"Sidwell, Josh" wrote:
> 
> I am trying to write a small script that will recursively search through a
> directory tree (from some arbitrary point) and return all of the files it
> finds that match an expression.  I then want to grep the results for a
> specific string in each of thos files and return the file name and line
> number for each match.
> 
> I am somewhat out of my depth in trying this.  Any assistance would be
> helpful.
> 
> __Begin__
>  use strict;
>  use File::Find;
>  my @files = ('');                            # Array to hold the resulting
> files
>  my $rootdir = 'c:/temp';                     # Start here in this directory
>  find(/\.(html|htm|asp)$/i, ($rootdir));      # Examine the files
>         $#files = 999;                        # Set array size so that it is
> not incremented each time
>         push ( @files, "$_" );                  # Append the latest result
> that matches to the array
> print "@files\n";                                   # for debugging
> purposes, to see what is returned

Untested:

use strict;
use File::Find;

my @files = ();                         # Array to hold the resulting files
my $rootdir = 'c:/temp';                # Start here in this directory

find (\&wanted, $rootdir);              # Examine the files

foreach (@file) {                       # print list
        print "$_\n";
}
exit 0;

sub wanted {

next if not /\.(html|htm|asp)$/i or not -f $_;  # skip files not wanted and non-plain 
files
push @files, $File::Find::name;         # Append path (use $_ for just filename)

}

-- 
  ,-/-  __      _  _         $Bill Luebkert   ICQ=14439852
 (_/   /  )    // //       DBE Collectibles   Mailto:[EMAIL PROTECTED] 
  / ) /--<  o // //      http://dbecoll.webjump.com/ (Free Perl site)
-/-' /___/_<_</_</_     Castle of Medieval Myth & Magic http://www.todbe.com/
_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-users

Reply via email to