Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Re: Detecting if a script uses non-standard module

by Vautrin (Hermit)
on Apr 05, 2004 at 04:56 UTC ( [id://342573]=note: print w/replies, xml ) Need Help??


in reply to Re: Detecting if a script uses non-standard module
in thread Detecting if a script uses non-standard module

All modules are stored in directories contained in the @INC variable. It is not hard to create a perl script to find all modules within those directories. The easiest involves using glob, i.e.:

foreach my $path (@INC) { my @modules = glob "$path/*.pm"; foreach my $module (@modules) { print "You have module $module installed\n"; } }

A more elegant solution would involve using File::Find to recursively search the directories, and create the proper names for modules. (For instance, the Net::SMTP module would be called SMTP.pm under the directory Net)


Want to support the EFF and FSF by buying cool stuff? Click here.

Replies are listed 'Best First'.
Re: Re: Re: Detecting if a script uses non-standard module
by davido (Cardinal) on Apr 05, 2004 at 05:03 UTC
    That doesn't differentiate between which modules were installed as part of the Perl core, and which were installed after the fact. The OP is interested in knowing which modules were bundled with Perl. We already got a pretty good answer; perlmodlib has a mostly up-to-date listing of Perl's core modules. My counter-question was how to determine which modules I've installed that didn't ship with Perl as a core module.

    I guess, to your point, I could use File::Find to resurse Perl's @INC paths, keeping track of the names of all modules found, and then compare that list to the one provided in perlmodlib.


    Dave

      I guess, to your point, I could use File::Find to resurse Perl's @INC paths, keeping track of the names of all modules found, and then compare that list to the one provided in perlmodlib.

      Yes, you could do all sorts of things to this effect. You could take a list of modules which might be installed by default by your Perl distribution and compare it with what is installed. You've solved your own problem. <grins /> I was trying to provide suggestions to see whether or not it helped anyone.


      Want to support the EFF and FSF by buying cool stuff? Click here.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2024-04-16 19:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found