The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

package Debian::Packages;
use Moose;

=head1 NAME

Debian::Packages - An interface to a Debian Packages file

=head1 VERSION

Version 0.03

=cut

our $VERSION = '0.03';

=head1 SYNOPSIS

use Debian::Packages;

# create object and pass a Packages file
my $packages_file = DebianPackages->new(filename => '/var/www/apt/dists/sid/main/binary-i386/Packages');
my @packages_array = $packages_file->read;
print "First found package is $packages_array[0]\n";

=cut

has 'file' => ( is => 'ro', isa => 'Str', default => 0 );

=head2 read

Read our Packages file, place into an array of newlines.

=cut

sub read {
  use Perl6::Slurp;
  my ($self) = @_;
  slurp $self->{filename}, {irs => qr/\n\n/xms};
}

=head1 DESCRIPTION

DebianPackages is an interface to a Debian Packages file. The Debian Packages file is a list of packages
included in a Debian, or Debian based, distribution. This is the file used by APT and other tools to 
query and install packages on a Debian system. The Packages file is usually created by one of the tools
that manages a debian package repository, like reprepro or dak for example. It has limited use for end users
since apt and aptitude are better and more complete tools.

=head1 AUTHOR 

Jeremiah C. Foster, E<lt>jeremiah@jeremiahfoster.comE<gt>

=head1 COPYRIGHT & LICENSE

Copyright 2009 Jeremiah C. Foster, all rights reserved.

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

=head1 SEE ALSO

Parse::Debian::Packages (Does roughly the same thing, but is unmaintained.)_

=cut

1;  # End of Debian::Packages