I was looking for a way to search CPAN from the command line in the same way that going to search.cpan.org does. This script will take a word to search for and find everything on CPAN that has that word in it.
To use the script, just do
perl script.pl /undefined/
It'll find all all modules with undefined in its name. Note that it is case insensitive.
#!/usr/bin/perl
use strict;
use warnings;
use CPAN;
use Module::CoreList;
my $d = shift @ARGV;
my @d = Module::CoreList->find_modules(qr/^$d$/);
my(@matches) = grep(($_ eq $d), @d);
if (@matches) {
for $d (CPAN::Shell->expand("Module", "$d")) {
print
"\n\tmodule: ",
$d->id, "\n",
"\tauthor: ",
$d->cpan_userid, "\n",
"\tcurrent version: ",
$d->cpan_version, "\n",
"\tinstalled version: ",
$d->inst_version, "\n";
}
}
else {
for $d (CPAN::Shell->expand("Module", $d)) {
print
"\n\tmodule: ",
$d->id, "\n",
"\tauthor: ",
$d->cpan_userid, "\n",
"\tThe current version is: ",
$d->cpan_version, "\n",
"\tinstalled version: ",
$d->inst_version, "\n";
}
}
It'll also take a module name like CGI and find eveything on CPAN that has CGI in its name.
perl script.pl /CGI/