NAME

CPAN::Search::Lite::Info - extract information from CPAN indices

DESCRIPTION

This module extracts information from the CPAN indices $CPAN/indices/ls-lR.gz, $CPAN/modules/03modlist.data.gz, $CPAN/modules/02packages.details.txt.gz, and $CPAN/authors/01mailrc.txt.gz. If a local CPAN mirror isn't present, it will use the files fetched from a remote CPAN mirror under CPAN by CPAN::Search::Lite::Index.

A CPAN::Search::Lite::Info object is created with

my $info = CPAN::Search::Lite::Info(CPAN => $cpan);

where $cpan specifies the top-level CPAN directory underneath which the index files are found. Calling

$info->fetch_info();

will result in the object being populated with 3 hash references:

  • $info->{dists}

    This contains information on distributions. Keys of this hash reference are the distribution names, with the associated value being a hash reference with keys of

    version - the version of the CPAN file
    filename - the CPAN filename
    cpanid - the CPAN author id
    description - a description, if available
    size - the size of the file
    date - the last modified date (YYYY/MM/DD) of the file
    modules - specifies the modules present in the distribution:
    for my $module (keys %{$info->{$distname}->{modules}}) {
      print "Module: $module\n";
    }
    chapterid - specifies the chapterid and the subchapter for the distribution:
    for my $id (keys %{$info->{$distname}->{chapterid}}) {
      print "For chapterid $id\n";
      for my $sc (keys %{$info->{$distname}->{chapterid}->{$id}}) {
        print "   Subchapter: $sc\n";
      }
    }
    requires - a hash reference whose keys are the names of prerequisite modules required for the package and whose values are the associated module versions. This information comes from the META.yml file processed in CPAN::Search::Lite::Extract.
  • $info->{mods}

    This contains information on modules. Keys of this hash reference are the module names, with the associated values being a hash reference with keys of

    dist - the distribution name containing the module
    version - the version
    cpanid - the CPAN author id
    description - a description, if available
    chapterid - the chapter id of the module, if present
    dslip - a 5 character string specifying the dslip (development, support, language, interface, public licence) information.
  • $info->{auths}

    This contains information on CPAN authors. Keys of this hash reference are the CPAN ids, with the associated value being a hash reference with keys of

    fullname - the author's full name
    email - the author's email address

SEE ALSO

CPAN::Search::Lite::Index