CPAN::SQLite::Index - set up or update database tables.
 my $index = CPAN::SQLite::Index->new(setup => 1);
 $index->index();
This is the main module used to set up or update the database
    tables used to store information from the CPAN and ppm indices. The creation
    of the object
 my $index = CPAN::SQLite::Index->new(%args);
accepts two possible arguments:
  - setup => 1
    
This (optional) argument specifies that the database is being
        set up. Any existing tables will be dropped.
   
  - reindex => value
    
This (optional) argument specifies distribution names that one
        would like to reindex in an existing database. These may be specified as
        either a scalar, for a single distribution, or as an array reference for
        a list of distributions.
   
Calling
  $index->index();
will start the indexing procedure. Various messages detailing the
    progress will written to STDOUT, which by default will be captured
    into a file cpan_sqlite_log.dddddddddd, where the extension is the
    "time" that the method was invoked. Error
    messages are not captured, and will appear in STDERR.
The steps of the indexing procedure are as follows.
  - fetch index data
    
The necessary CPAN index files
        $CPAN/authors/01mailrc.txt.gz,
        $CPAN/modules/02packages.details.txt.gz,
        and
        $CPAN/modules/03modlist.data.gz
        will be fetched from the CPAN mirror specified by the
        $cpan variable at the beginning of
        CPAN::SQLite::Index. If you are using this option, it is recommended to
        use the same CPAN mirror with subsequent updates, to ensure consistency
        of the database. As well, the information on the locations of the CPAN
        mirrors used for Template-Toolkit and GeoIP is written.
   
  - get index information
    
Information from the CPAN indices is extracted through
        CPAN::SQLite::Info.
   
  - get state information
    
Unless the "setup" argument
        within the "new" method of
        CPAN::SQLite::Index is specified, this will get information on the state
        of the database through CPAN::SQLite::State. A comparision is then made
        between this information and that gathered from the CPAN indices, and if
        there's a discrepency in some items, those items are marked for either
        insertion, updating, or deletion, as appropriate.
   
  - populate the database
    
At this stage the gathered information is used to populate the
        database, through CPAN::SQLite::Populate, either inserting new items,
        updating existing ones, or deleting obsolete items.
   
CPAN::SQLite::Info, CPAN::SQLite::State, CPAN::SQLite::Populate,
    and CPAN::SQLite::Util. Development takes place on the CPAN-SQLite project
    at <http://sourceforge.net/projects/cpan-search/>.
This software is copyright 2006 by Randy Kobes
    <r.kobes@uwinnipeg.ca>. Use and redistribution are under the same
    terms as Perl itself.