Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: To list all *.pm files included in a set of pl scripts

by mreece (Friar)
on Apr 24, 2007 at 02:33 UTC ( #611633=note: print w/ replies, xml ) Need Help??


in reply to To list all *.pm files included in a set of pl scripts

i cooked this up a few months ago using Module::Dependency::Indexer ...

#!/usr/local/bin/perl ## Usage: # find_perl_dependencies.pl <DIR> # use strict; use warnings; use Module::Dependency::Indexer; use Module::Dependency::Info; my $start_dir = $ARGV[0] || '.'; Module::Dependency::Indexer::setIndex('/tmp/perl_dependencies.dat'); Module::Dependency::Indexer::makeIndex($start_dir); my $dpidx = Module::Dependency::Info::retrieveIndex(); my $all = $dpidx->{allobjects}; my @todo = map { @{ $all->{$_}->{depends_on} } } grep { exists $all->{$_}->{depends_on} } keys %$all; my @modules; my %seen; while (my $pm = shift @todo) { next if $seen{$pm}++; push @modules, $pm; next unless exists $all->{$pm} and exists $all->{$pm}->{depends_on +}; my @reqs = grep { !$seen{$_} } @{ $all->{$pm}->{depends_on} }; push @todo, @reqs; } print "$_\n" foreach sort @modules;
comments welcome..
updated to add sample output:

when run in a directory containing only this script:

% perl find_perl_dependencies.pl .
Module::Dependency::Indexer
Module::Dependency::Info
strict
warnings


Comment on Re: To list all *.pm files included in a set of pl scripts
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://611633]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2014-07-12 16:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (240 votes), past polls