The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DPKG::Parse::Entry - Parse a Package style entry

SYNOPSIS

    use DPKG::Parse::Entry;

    my $data = <<EOH;
 Package: kernel-image-2.6.12.2
 Source: kernel-source-2.6.12.2
 Version: wrk01
 Priority: optional
 Section: base
 Maintainer: Jamie Heilman <jamie@marchex.com>
 Depends: coreutils | fileutils (>= 4.0)
 Suggests: lilo (>= 19.1) | grub, fdutils, kernel-doc-2.6.12.2 | kernel-source-2.6.12.2
 Provides: kernel-image, kernel-image-2.6
 Architecture: i386
 Filename: packages/./kernel-image-2.6.12.2_wrk01_i386.deb
 Size: 4293154
 Installed-Size: 10312
 MD5sum: 2acf846b127b71a1fa1143214b2b85a9
 Description: Linux kernel binary image for version 2.6.12.2. 
 EOH

    my $entry = DPKG::Parse::Entry->new('data' => $data);

    print $entry->package . " " . $entry->version . "\n";

    $entry->package("kernel-foobar");

DESCRIPTION

DPKG::Parse::Entry parses a dpkg "Package" file entry, creating a new DPKG::Parse::Entry instance for it. You submit the contents, beginning with a "Package:" line, as the 'data' argument to new. After that, all the data is populated as lowercased instance methods. For example, if we used the above to create an $entry object, we would have:

   $entry->package == "kernel-image-2.6.12.2"
   $entry->size    == 4293154
   $entry->md5sum  == 2acf846b127b71a1fa1143214b2b85a9

DPKG::Parse::Entry will skip any attribute it does not know about. You can see what it has skipped by passing a true value to the 'debug' option to 'new()'.

It should know all the attributes present in a Packages, available, and status file.

See DPKG::Parse::Status, DPKG::Parse::Available, and DPKG::Parse::Packages for more information on how to easily generate DPKG::Parse::Entry objects.

METHODS

Accessor Methods

The following accessor methods correspond directly to the values found in the parsed Package block, with one exception: "-" characters are replaced with "_". So, "build-essential" becomes "build_essential".

The accessors are:

    architecture 
    bugs 
    build_essential
    conflicts 
    config_version
    conffiles
    depends 
    description 
    enhances 
    essential 
    filename 
    installed_size
    maintainer 
    md5sum 
    origin 
    package 
    priority 
    provides 
    pre_depends
    recommends 
    replaces 
    size 
    source 
    section 
    suggests 
    status 
    task 
    tag
    url 
    version
new('data' => $data, 'debug' => 1)

Creates a new DPKG::Parse::Entry object. 'data' should be a scalar that contains the text of a dpkg-style Package entry. If the 'debug' flag is set, we will Carp about entries we don't have accessors for.

parse('data' => $data);

Does the actual parsing of the Package block given to new(). Probably should only be called once per object.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 65:

=over without closing =back