Parse::BACKPAN::Packages - Provide an index of BACKPAN
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::Release my @acme_colours = $p->releases("Acme-Colour"); my @authors = $p->authors; my @acmes = $p->distributions_by('LBROCARD');
Parse::BackPAN::Packages has been DEPRECATED. Please use the faster and more flexible BackPAN::Index.
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.
The data is fetched from the net and cached for an hour.
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();
By default it caches the file locally for one hour. If you do not want this caching then you can pass in:
my $p = Parse::BACKPAN::Packages->new( { no_cache => 1 } );
The authors method returns a list of all the authors. This is meant so that you can pass them into the distributions_by method:
my @authors = $p->authors;
my $distributions = $p->distributions;
The distributions method returns an array ref of the names of all the distributions in BackPAN.
The releases method returns a list of objects representing all the different releases of a distribution:
# see Parse::BACKPAN::Packages::Release my @acme_colours = $p->releases("Acme-Colour");
The distributions_by method returns a list of distribution names representing all the distributions that an author has uploaded:
my @acmes = $p->distributions_by('LBROCARD');
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";
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;
The size method returns the sum of all the file sizes in BACKPAN:
print "BACKPAN is " . $p->size . " bytes\n";
Leon Brocard <acme@astray.com>
Copyright (C) 2005-9, Leon Brocard
This module is free software; you can redistribute it or modify it under the same terms as Perl itself.
BackPAN::Index, CPAN::DistInfoname
To install BackPAN::Index, copy and paste the appropriate command in to your terminal.
cpanm
cpanm BackPAN::Index
CPAN shell
perl -MCPAN -e shell install BackPAN::Index
For more information on module installation, please visit the detailed CPAN module installation guide.