Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
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 ( [id://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

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2024-04-19 12:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found