This is the README for CPAN-Search-Lite, a set of modules for setting up a CPAN search system. It does not implement the full set of features (eg, multiple package versions) available on If a local CPAN mirror is available, the pod (and converted html) documentation will be extracted from the packages, as well as possible README/INSTALL/Changes/META.yml files. See for details on how you can mirror CPAN, or alternatively, the CPAN-Mini distribution under for a way to set up a minimal CPAN mirror consisting of only the latest distributions.

As well as various Perl modules which are checked for when installing, MySQL is required; version 4 is needed for some text searching capabilities. See the INSTALL file for details on installation.

The included modules, with pod documentation, are:

CPAN::Search::Lite::Extract - extract files from distributions

CPAN::Search::Lite::Index      - index and update the database
CPAN::Search::Lite::Info       - extract info from the CPAN indices
CPAN::Search::Lite::PPM        - get info from PPM repositories
CPAN::Search::Lite::State      - get the state of the current database
CPAN::Search::Lite::Populate   - populate the database
CPAN::Search::Lite::Query      - query the database
CPAN::Search::Lite::Util       - some common data structures
CPAN::Search::Lite::Lang       - some common language data structures
CPAN::Search::Lite::DBI        - database information

CPAN::Search::Lite::DBI::Index - database indexing methods CPAN::Search::Lite::DBI::Query - database querying methods

Language-specific modules, used for translating some terms, are found as CPAN::Search::Lite::Lang::*. As well, some PPM::XML::* modules (from the PPM distribution of MURRAY, on CPAN) are included for extracting info from the PPM repositories.

Two different mod_perl interfaces to CPAN::Search::Lite::Query are included as Apache2::CPAN::Query and Apache2::CPAN::Search. Note that this requires a recent mod_perl-2 release candidate on CPAN, as well as Apache2::Request and friends from the libapreq2 distribution on CPAN. A cgi script and soap server examples are in the cgi-bin directory. A set of Template-Toolkit are found in the tt2/ subdirectory. Note that some manual editing of of the config file is needed to reflect local settings.

The bin/ subdirectory contains 3 scripts:

csl_index - create and subsequently update the database csl_query - an example script for performing local queries csl_soap - an example script for performing soap-based queries

The cgi-bin/ subdirectory contain 4 scripts:

search        - a cgi interface to CPAN::Search::Lite::Query
soap.cgi      - a SOAP-based query form (see bin/csl_soap)
docserver.cgi - the SOAP server for perldocs, for viewing remote
                pod documentation - see Pod::Perldocs, and the
                Pod-Perldocs project at
ppminfo.cgi   - the SOAP server for PPM::Make, used to get author,
                module, and distribution information - see PPM::Make, and the
                PPM-Make project at

SOAP::Lite is required in order to perform soap queries.

See the INSTALL file for directions on installation. Development takes place at the CPAN-Search-Lite project on SourceForge at

Support for presenting results in different languages in a web environment, based on the browser's language preference, is available - see the INSTALL file for a brief discussion on how to set this up. At present English, French, German, Italian, Portugese, and Spanish are available, although others can readily be added (this would involve providing translation of terms appearing in the language-specific modules of CPAN::Search::Lite::Lang::*, as well as providing the corresponding static page under htdocs/). Note that this does not include, in particular, translations of the abstracts of modules or distributions, nor of the accompanying documentation. The translations have been carried out with the help of French: Isabelle Hernandez <isa at>

Arnaud Assad <arnaud at> German: Florian Greb <greb at> Italian: Enrico Sorcinelli <bepi at> Spanish: Joaquin Ferrero <explorer at> Portugese: Alberto Simoes <albie at> As this is still evolving, patches are welcome.

An implementation of this search engine is at

Randy Kobes <>