Adam Kennedy
and 1 contributors


CPAN::Index - Robust and object-oriented access to the CPAN index


There are many parts of the CPAN toolchain that might benefit from convenient access to the CPAN index metadata.

But for legacy compatibility reasons, most of this metadata is provided in the form of three venerable uniquely-formatted text files.

Generally, this means that if you want access to them, you need to pull the files from the CPAN, write a parser, store the objects in memory, maybe cache them with Storable, and write your own hash indexing and object-walking functions.

However, with the CPAN still growing, and further accelerating, it is becoming increasingly unfeasible to store the CPAN metadata solely in memory structures.

A more robust, richer, and more convenient approach is required.

CPAN::Index provides object-oriented access to the CPAN index, using a collection of relatively common modules, and automates entire process of fetching and accessing the index.

The index is stored in a DBD::SQLite database file, with an object model implemented around it using DBIx::Class. To update the index, the CPAN::Index::Loader class implements the logic to flush and reset the database, fetch the index files, parse them, and repopulate the database.


- Write the index file download code

- Verify CPAN::Index handles index unicode data properly

- A bunch of other things...


Bugs should be reported via the CPAN bug tracker

For other issues, contact the author.


Adam Kennedy <>


CPAN::Index::Loader, DBD::SQLite, DBIx::Class


Copyright (c) 2006 Adam Kennedy. All rights reserved.

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

The full text of the license can be found in the LICENSE file included with this module.