cpandeps-diff - generate reports when modules' dependencies get new releases


    cpandeps-diff add Some::Module --perl 5.30.3 --mirror file:///home/me/cpanmirror

    cpandeps-diff list

    cpandeps-diff report Some::Module


cpandeps-diff takes at most one of several different commands, some of which in turn take more arguments:

add $module [@args]

Add the named module to the list of modules we care about

remove $module [@args]

Stop reporting on this module

(aliases: delete; rm)


Show which modules we're going to report on

report $module [@args]

Generate a report for just this one module


If you don't provide a command then it will generate a report about all known modules.


Can you guess what this does?


perl $version

Use this version of perl for figuring out what's in core. Any dependencies that are in core will not be reported on unless a newer version is required.

If not specified it defaults to 5.005.

Note that adding, removing and reporting on modules always depends on the version of perl, so as well as being used to figure out what's in core you can also have different lists of modules for different versions of perl.

mirror $mirror

Use this CPAN mirror to fetch dependency information from (see CPAN::FindDependencies documentation for details). You may provide this argument as many times as you want.


Data is stored in a directory called .cpandeps-diff, which by default is under your home directory. If you want to put it somewhere else (you probably don't) then set CPANDEPS_DIFF_DIR in your environment. That data includes a cache of data fetched from the CPAN which will be automatically cleared out after 23 hours. This cache helps to generate reports for multiple modules more quickly, and also to prevent you from being rate-limited or even kicked off CPAN mirrors.


This script has not been thoroughly tested.

I welcome feedback about my code, including constructive criticism. Bug reports should be made on Github or by email.


Copyright 2007 - 2020 David Cantrell <>

This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.


This software is also free-as-in-mason.