Module::Packaged - Report upon packages of CPAN distributions


Module-Packaged documentation Contained in the Module-Packaged distribution.

Index


Code Index:

NAME

Top

Module::Packaged - Report upon packages of CPAN distributions

SYNOPSIS

Top

  use Module::Packaged;

  my $p = Module::Packaged->new();
  my $dists = $p->check('Archive-Tar');
  # $dists is now:
  # {
  # cpan    => '1.08',
  # debian  => '1.03',
  # fedora  => '0.22',
  # freebsd => '1.07',
  # gentoo  => '1.05',
  # openbsd => '0.22',
  # suse    => '0.23',
  # }

  # meaning that Archive-Tar is at version 1.08 on CPAN but only at
  # version 1.07 on FreeBSD, version 1.05 on Gentoo, version 1.03 on
  # Debian, version 0.23 on SUSE and version 0.22 on OpenBSD

DESCRIPTION

Top

CPAN consists of distributions. However, CPAN is not an isolated system - distributions are also packaged in other places, such as for operating systems. This module reports whether CPAN distributions are packaged for various operating systems, and which version they have.

Only CPAN, Debian, Fedora (Core 2), FreeBSD, Gentoo, Mandriva (10.1), OpenBSD (3.6) and SUSE (9.2) are currently supported. I want to support everything else. Patches are welcome.

The data is fetched from the net and cached for an hour.

METHODS

Top

new()

The new() method is a constructor:

  my $p = Module::Packaged->new();

check()

The check() method returns a hash reference. The keys are various distributions, the values the version number included:

  my $dists = $p->check('Archive-Tar');

COPYRIGHT

Top

AUTHOR

Top

Leon Brocard, leon@astray.com


Module-Packaged documentation Contained in the Module-Packaged distribution.

package Module::Packaged;
use strict;
use App::Cache;
use Compress::Zlib;
use LWP::Simple;
use Storable qw(thaw);
use vars qw($VERSION);
$VERSION = '0.86';

sub new {
  my $class = shift;
  my $self  = {};
  bless $self, $class;

  my $cache = App::Cache->new({ ttl => 60 * 60 });
  my $data = $cache->get_url('http://www.astray.com/tmp/module_packaged.gz');
  $self->{data} = thaw(uncompress($data));
  return $self;
}

sub check {
  my ($self, $dist) = @_;
  return $self->{data}->{$dist};
}

1;

__END__