The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Module::ThirdParty - Provide information for 3rd party modules (outside CPAN)


Version 0.27


    use Module::ThirdParty;

    if (is_3rd_party($module)) {
        my $info = module_information($module);
        print "$module is a known third-party Perl module\n", 
              " -> included in $info->{name} ($info->{url})\n",
              " -> made by $info->{author} ($info->{author_url})\n"
    else {
        print "$module is not a known third-party Perl module\n"


Perl modules can be roughly classified in three categories:

  • core modules, included with the standard Perl distribution;

  • CPAN modules, available from any CPAN mirror;

  • third-party modules, including modules publicly available on the Internet (outside CPAN) and "closed" modules available only through commercial licenses. They are therefore the very tip of the iceberg, the most visible part of the DarkPAN, which is all the Perl code, public or non-public, used in the world.

The list of core modules is provided by Module::CoreList and the list of CPAN modules is in the file and provided by modules like CPANPLUS, but there was no module that listed third-party modules. This module tries to address this need by providing such a list.

Why bother in the first place? Because some CPAN modules specify such third-party software. Therefore installing them may not be as easy as other CPAN modules because one must first find and manually install the prerequisites. The aim of Module::ThirdParty is to provide basic information to installer shells like CPANPLUS and to give hints to the user.

Note that there is also another category of modules regarding dependencies problems: the ghost modules. Those are modules no longer present on the CPAN, but which still haunt it from old PREREQS. They can be found in the BackPAN graveyard, for which the only map is Parse::BACKPAN::Packages.


This module exports by defalut the functions is_3rd_party() and module_information(). provides() and all_modules() can be exported on demand.



Returns true if the given module name is a known third-party Perl module.


    print "$module is a known third-party module\n" if is_3rd_party($module)

Returns the information about a known third-party Perl Module or undef if the module is not known. The information is returned as a hashref with the following keys:

  • name is the name of the software that provides the given module;

  • url is the URL where this software can be found;

  • author is the name of the author who publishes the software;

  • author_url is the URL of the author's web site;

  • modules is an arrayref which contains the list of the Perl modules provided by the software.


    my $info = module_information($module);
    print "$module is included in $info->{name}, which can be found at $info->{url}\n"

Returns a list of hashref with the name and author of each software for which this module provides information.


Prints the list of known third-party modules sorted by software name.

    print "Known third-party software:\n";
    my @softs = Module::ThirdParty::provides();
    for my $soft (sort {$a->{name} cmp $b->{name}} @softs) {
        print " - $$soft{name} by $$soft{author} \n"

Returns the list of all known third-third modules.


    my @modules = Module::ThirdParty::all_modules();


Here is the list of the third-party software know by this version of Module::ThirdParty.


Module::CoreList, CPANPLUS, Parse::BACKPAN::Packages


Sébastien Aperghis-Tramoni, <sebastien (at)>


Please report any bugs or feature requests to bug-module-thirdparty (at), or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


Copyright 2005, 2006, 2007, 2008 Sébastien Aperghis-Tramoni, All Rights Reserved.

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