Skip to content
set up and maintain a searchable CPAN database
Perl Frege CSS
Find file
New pull request
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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

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

Something went wrong with that request. Please try again.