in reply to Re: Searching for Perl Modules in Files
in thread Searching for Perl Modules in Files

I can use "File::Find::Rule" that works good, any sample about how I could use "Module::ScanDeps" to scan these files for any Perl modules?
use File::Find::Rule; my $directory="../mydir"; # find all the subdirectories of a given directory my @subdirs = File::Find::Rule->directory->in( $directory ); my $rule = File::Find::Rule->new; $rule->file; $rule->name( '*.pl' ); my @files = $rule->in( $directory ); foreach (@files) { print "$_\n"; }

Replies are listed 'Best First'.
Re^3: Searching for Perl Modules in Files
by vek (Prior) on Aug 27, 2010 at 21:40 UTC

    From the docs of Module::ScanDeps I'd try something like the following (untested):

    # using your @files array as the starting point... my $dependencies = scan_deps( files => \@files, recurse => 1, );
Re^3: Searching for Perl Modules in Files
by Anonymous Monk on Aug 27, 2010 at 18:06 UTC
    I got to a point where I can search for "use" and print every line that uses "use" assuming that it is followed by a Perl module, can someone add to this so it can print the name of the file/script been searched and only "grep" a line that has "use modulename;". Otherwise it is grabbing lines with comments with the word "use" in it. That would take care of this, any help?
    Here is the code so far:

    use File::Find::Rule; my $directory="../yourdirectory"; # find all the subdirectories of a given directory my @subdirs = File::Find::Rule->directory->in( $directory ); my $rule = File::Find::Rule->new; $rule->file; $rule->name( '*.pl' ); my @files = $rule->in( $directory ); foreach my $files(@files) { open (FILE, "$files"); while($line= <FILE> ){ print "$line" if grep /\buse\b/, $line; } close FILE; }