cpan-outdated - detect outdated CPAN modules in your environment


    # print a list of distributions that contain outdated modules
    % cpan-outdated

    # print a list of outdated modules in packages
    % cpan-outdated -p

    # verbose
    % cpan-outdated --verbose
    # ignore core modules (do not update dual life modules)
    % cpan-outdated --exclude-core

    # alternate mirrors
    % cpan-outdated --mirror file:///home/user/minicpan/

    # additional module path(same as cpanminus)
    % cpan-outdated -l extlib/
    % cpan-outdated -L extlib/

    # install with cpan
    % cpan-outdated | xargs cpan -i

    # install with cpanm
    % cpan-outdated    | cpanm
    % cpan-outdated -p | cpanm


This script prints a list of outdated CPAN modules on your machine.

This is the same feature as 'CPAN::Shell->r', but cpan-outdated is much faster and uses less memory.

This script can be integrated with the cpanm command.


This script by default prints the outdated distribution as in the CPAN distro format, i.e: A/AU/AUTHOR/Distribution-Name-0.10.tar.gz so you can pipe it into CPAN installers, but with the -p option it can be tweaked to print the module's package names.

If you wish to manage a set of modules separately from your system perl installation and not install newer versions of "dual life modules" that are distributed with perl, the --exclude-core option will make cpan-outdated ignore changes to core modules. Used with tools like cpanm and its -L --local-lib-contained and --self-contained options, this facilitates maintaining updates on standalone sets of modules.

For some tools, such as cpanm, installing from packages could be a bit more useful since you can track to see the old version number which you upgrade from.


Tokuhiro Matsuno


Copyright (C) 2009 Tokuhiro Matsuno.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.




If you want to see what's changed for modules that require upgrades, use cpan-listchanges