CPAN::Index::File::ModList - Interface to


  my $modlist = CPAN::Index::File::ModList->parse_from_repo_uri(

  foreach my $module ($modlist->modules) {
    ... # do something


This is a class to read and write



List of hashrefs containing module data. Each hashref has the following structure.


Module name, e.g. Foo::Bar.


Short description of the module.


CPAN id of the module author.


Number of the chapter under which the module is classified. Valid options are:

2 - Perl Core Modules
3 - Development Support
4 - Operating System Interfaces
5 - Networking Devices IPC
6 -Data Type Utilities
7 - Database Interfaces
8 - User Interfaces
9 - Language Interfaces
10 - File Names Systems Locking
11 - String Lang Text Proc
12 - Opt Arg Param Proc
13 - Internationalization Locale
14 - Security and Encryption
15 - World Wide Web HTML HTTP CGI
16 - Server and Daemon Utilities
17 - Archiving and Compression
18 - Images Pixmaps Bitmaps
19 - Mail and Usenet News
20 - Control Flow Utilities
21 - File Handle Input Output
22 - Microsoft Windows Modules
23 - Miscellaneous Modules
24 - Commercial Software Interfaces
26 - Documentation
27 - Pragma
28 - Perl6
99 - Not In Module list

Single character indicating the development stage of the module. Valid options are:

M - Mature (no rigorous definition)
R - Released
S - Standard, supplied with Perl 5
a - Alpha testing
b - Beta testing
c - Under construction but pre-alpha (not yet released)
i - Idea, listed to gain consensus or as a placeholder

Single character indicating the type of support provided for the module. Valid options are:

a - Abandoned, the module has been abandoned by its author
d - Developer
m - Mailing-list
n - None known, try comp.lang.perl.modules
u - Usenet newsgroup comp.lang.perl.modules

Single character indicating the programming languages used in the module. Valid options are:

+ - C++ and perl, a C++ compiler will be needed
c - C and perl, a C compiler will be needed
h - Hybrid, written in perl with optional C code, no compiler needed
o - perl and another language other than C or C++
p - Perl-only, no compiler needed, should be platform independent

Single character indicating the interface of the module. Valid options are:

O - Object oriented using blessed references and/or inheritance
f - plain Functions, no references used
h - hybrid, object and function interfaces available
n - no interface at all (huh?)
r - some use of unblessed References or ties

Single character indicating the license under which the module is distributed. Valid options are:

a - Artistic license alone
b - BSD: The BSD License
g - GPL: GNU General Public License
l - LGPL: "GNU Lesser General Public License" (previously known as "GNU Library General Public License")
o - other (but distribution allowed without restrictions)
p - Standard-Perl: user may choose between GPL and Artistic


Number of modules indexed in the file.


Name of this file - defaults to;


Short description of the file.


Parses the file and returns its representation as a data structure.


Default file location - modules/


"tarball_is_default" in CPAN::Index::API::Role::Writable
"repo_path" in CPAN::Index::API::Role::Writable
"template" in CPAN::Index::API::Role::Writable
"content" in CPAN::Index::API::Role::Writable
"write_to_file" in CPAN::Index::API::Role::Writable
"write_to_tarball" in CPAN::Index::API::Role::Writable
"clone" in CPAN::Index::API::Role::Clonable
"filename" in CPAN::Index::API::Role::HavingFilename
"generated_by" in CPAN::Index::API::Role::HavingGeneratedBy
"last_generated" in CPAN::Index::API::Role::HavingGeneratedBy