Perl CPAN module help

Doug VanLeuven roamdad@sonic.net
Thu Nov 13 23:43:00 GMT 2003


Brian Dessent wrote:

>>
>>How do you list modules already installed?
> 
> 
> There's no definitive way to do this.  If you just want to see if you
> have the Foo::Bar module, you can use "perl -MFoo::Bar -e 1" and if you
> get an error then you need to install Foo::Bar.
> 
> You can also try the following script which uses the ExtUtils::Installed
> module, but I have found that its output is sometimes misleading, in
> that it will not display base (stock included) modules.  And I'm not
> sure if it knows about modules that are installed through means other
> than CPAN (e.g. through your distro's package manager.)

I've been doing something similar.
Really it's been so long now, I forget it's origins or much of anything
about the why or how of it other than it's a comprehensive listing
that lets me know what I have & the status of the versions.

#!/usr/bin/perl

use CPAN;
# list all modules on my disk and note the newer versions
for $mod (CPAN::Shell->expand("Module","/./")){
         next unless $mod->inst_file;
                 # here only when installed
         if ($mod->inst_version eq "undef") {
                 printf "%s :No VERSION\n", $mod->id;
         }
         elsif ($mod->uptodate){
                 printf "%s %s\n", $mod->id, $mod->inst_version
         }
         else {
                 # here when not up to date
         printf "%s %s, NEW VERSION=%s\n",
                 $mod->id, $mod->inst_version, $mod->cpan_version;
         }
}

Doug VanLeuven


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list