NAME

Parse::BACKPAN::Packages - Provide an index of BACKPAN

SYNOPSIS

use Parse::BACKPAN::Packages;
my $p = Parse::BACKPAN::Packages->new();
print "BACKPAN is " . $p->size . " bytes\n";

my @filenames = keys %$p->files;

# see Parse::BACKPAN::Packages::File
my $file = $p->file("authors/id/L/LB/LBROCARD/Acme-Colour-0.16.tar.gz");
print "That's " . $file->size . " bytes\n";

# see Parse::BACKPAN::Packages::Distribution
my @acme_colours = $p->distributions("Acme-Colour");

DESCRIPTION

The Comprehensive Perl Archive Network (CPAN) is a very useful collection of Perl code. However, in order to keep CPAN relatively small, authors of modules can delete older versions of modules to only let CPAN have the latest version of a module. BACKPAN is where these deleted modules are backed up. It's more like a full CPAN mirror, only without the deletions. This module provides an index of BACKPAN and some handy functions.

METHODS

new

The constructor downloads a ~1M index file from the web and parses it, so it might take a while to run:

my $p = Parse::BACKPAN::Packages->new();

distributions

The distributions method returns a list of objects representing all the different versions of a distribution:

# see Parse::BACKPAN::Packages::Distribution
my @acme_colours = $p->distributions("Acme-Colour");

file

The file method finds metadata relating to a file:

# see Parse::BACKPAN::Packages::File
my $file = $p->file("authors/id/L/LB/LBROCARD/Acme-Colour-0.16.tar.gz");
print "That's " . $file->size . " bytes\n";

files

The files method returns a hash reference where the keys are the filenames of the files on CPAN and the values are Parse::BACKPAN::Packages::File objects:

my @filenames = keys %$p->files;

size

The size method returns the sum of all the file sizes in BACKPAN:

print "BACKPAN is " . $p->size . " bytes\n";

AUTHOR

Leon Brocard <acme@astray.com>

COPYRIGHT

Copyright (C) 2005, Leon Brocard

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

SEE ALSO

CPAN::DistInfoname, Parse::BACKPAN::Packages::File, Parse::BACKPAN::Packages::Distribution, Parse::CPAN::Packages.