NAME

DPKG::Parse - Parse various dpkg files into Perl Objects

SYNOPSIS

use DPKG::Parse::Status;
my $status = DPKG::Parse::Status->new;
while (my $entry = $status->next_package) {
    print $entry->package . " " . $entry->version . "\n";
}

use DPKG::Parse::Available;
my $available = DPKG::Parse::Available->new;
while (my $entry = $available->next_package) {
    print $entry->package . " " . $entry->version . "\n";
}

DESCRIPTION

DPKG::Parse contains utilities to parse the various files created by dpkg and turn them into helpful Perl objects. Current files understood by various DPKG::Parse modules:

/var/lib/dpkg/status    - DPKG::Parse::Status
/var/lib/dpkg/available - DPKG::Parse::Available
Packages.gz             - DPKG::Parse::Packages

See each module's documentation for particulars - You should not be calling DPKG::Parse directly.

METHODS

filename($filename)

A simple accessor for the file currently being parsed.

entryarray

Access to the raw array of entries in a given file.

entryhash

Access to the raw hash of entries. The key is determined by the module, but is usually the Package name.

new('filename' => '/var/lib/dpkg/status');

A generic new function; takes a filename and calls the filename() accessor with it. Should not be called directly, but through on of the children of this package.

parse

A default parse function; simply calls parse_package_format.

parse_package_format

Takes a file in a format similar to the dpkg "available" file, and creates DPKG::Parse::Entry objects from each entry.

get_package('name' => 'postfix', 'hash' => 'entryhash');

The value of a hash, if it exists. By default, it uses the value returned by the "entryhash" accessor, but that can be overridden with the "hash" parameter. Usually returns a DPKG::Parse::Entry object.

next_package

Shifts the next value off the array stored in the entryarray() accessor. If you want to access the raw values, do not use this function! It shifts!

SEE ALSO

DPKG::Parse::Status, DPKG::Parse::Available, DPKG::Parse::Packages, DPKG::Parse::Entry

AUTHOR

Adam Jacob, holoway@cpan.org

LICENSE

This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.