NAME

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

VERSION

Version 0.27

SYNOPSIS

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"
}
    

DESCRIPTION

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 http://www.cpan.org/modules/02packages.details.txt.gz 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.

EXPORT

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

FUNCTIONS

is_3rd_party()

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

Example

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

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.

Example

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

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

Example

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"
}
all_modules()

Returns the list of all known third-third modules.

Example

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

KNOWN THIRD-PARTY SOFTWARE

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

SEE ALSO

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

AUTHOR

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

BUGS

Please report any bugs or feature requests to bug-module-thirdparty (at) rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-ThirdParty. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

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.