NAME

PAUSE::Packages - interface to PAUSE's packages file (02packages.details.txt)

SYNOPSIS

use PAUSE::Packages 0.02;

my $pp       = PAUSE::Packages->new;
my $iterator = $pp->release_iterator();

foreach my $release ($iterator->next) {
  print 'path = ', $release->path, "\n";
  print '   modules = ', join(', ', @{ $release->modules }), "\n";
}

DESCRIPTION

NOTE: this is very much an alpha release. any and all feedback appreciated.

PAUSE::Packages provides an interface to the 02packages.details.txt file produced by the Perl Authors Upload Server (PAUSE). The file records what version of what modules are included in each release of a distribution that is on CPAN.

PAUSE::Packages processes 02packages.details.txt and caches a transformed version of the data, with the following characteristics:

  • Only the highest numbered version of a module is included.

  • All modules in a release are written together, to make it efficient to iterate over the file release by release. 02packages is sorted by module name, not by release, which means it can't be efficiently processed by an iterator.

The interface for this distribution is very much still in flux, as is the documentation. More of the latter will be coming soon.

Note: the behaviour of this module changed between version 0.01 and 0.02, so you should make sure you're using 0.02 or later:

use PAUSE::Packages 0.02;

SEE ALSO

Parse::CPAN::Packages - used to parse 02packages.details.txt, which you must first download from CPAN.

Parse::CPAN::Packages::Fast - a 'largely API compatible rewrite' of the above module, which is claimed to be a lot faster.

REPOSITORY

https://github.com/neilbowers/PAUSE-Packages

AUTHOR

Neil Bowers <neilb@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Neil Bowers <neilb@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.