DPKG::Parse(3) Parse various dpkg files into Perl Objects


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";


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.


A simple accessor for the file currently being parsed.
Access to the raw array of entries in a given file.
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.
A default parse function; simply calls 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.
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!


Adam Jacob, "[email protected]"


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