The CPAN module has all sorts of code to do stuff like this. The man page has some very interesting examples, including one that I think you can modify to suit your needs:
# list all modules on my disk that have newer versions on CPAN
for $mod (CPAN::Shell->expand("Module","/./")) {
next unless $mod->inst_file;
next if $mod->uptodate;
printf "Module %s is installed as %s, could be updated to %s\n",
$mod->id, $mod->inst_version, $mod->cpan_version;
}
$mod->inst_version is set to the installed version of your module and $mod->cpan_version is the latest available version. The expand function as done above will pull everything from CPAN. |