NAME

ALPM::Package - Class representing an alpm package

SYNOPSIS

use ALPM qw( /etc/pacman.conf );
my $perlpkg = ALPM->local_db->get_pkg('perl');

# TMTOWTDI!

my $name = $perlpkg->name();
print "$name rocks!\n";

my %attrs = $perlpkg->attribs();
print "$attrs{name} rocks!\n";

my $attrs_ref = $perlpkg->attribs_ref();
print "attrs_ref->{name} rocks!\n";

# Dependencies are given as array of hashrefs:
print "$name depends on:\n";
for my $dep ( @{ $perlpkg->depends() } ) {
    my @words = @{$dep}{'name', 'mod', 'ver'};
    print "  @words\n";
}

# Others lists are arrayrefs of scalars:
print "$name owns files:\n";
print "  $_\n" foreach ( @{ $perlpkg->files } );

DESCRIPTION

This class is a wrapper for all of the alpm_pkg_... C library functions of libalpm. You retrieve the package from the database and you can then access its attributes. Attributes are like ALPM's options. There are many different ways to access them. You cannot modify a package.

ATTRIBUTES

There are three basic ways to access an attribute. You can use the accessor method that is specific to an attribute, you can use the attr method, or you can use the attribs method.

ATTRIBUTE ACCESSORS

The accessors are named exactly the same as the alpm_pkg_get... functions. They are easy to use if you only want a few attributes.

I have removed the get_ prefix on the accessors. This is because you can't really set anything so you should know it's a get anyways.

  • filename

  • name

  • version

  • desc

  • url

  • builddate

  • installdate

  • packager

  • md5sum

  • arch

  • size

  • isize

  • reason

  • licenses

  • groups

  • depends

  • optdepends

  • conflicts

  • provides

  • deltas

  • replaces

  • files

  • backup

  • has_scriptlet

  • has_force

  • download_size

  • changelog

Attributes with plural names return an arrayref of strings.

depends is different because it returns an arrayref of hashrefs (an AoH). The hash has the following key-value pairs:

|------+----------------------------------------|
| Key  | Value                                  |
|------+----------------------------------------|
| name | Package name of the dependency         |
| ver  | The version to compare the real one to |
| mod  | The modifier of the dependency         |
|      | ('==', '>=', '<=', '<', or '>')        |
|------+----------------------------------------|

PERLISH METHODS

There are also more ways to get attributes. attribs is useful if you want to get all attributes at once in a hash, or many attributes at once into a list or variables.

attribs

Usage   : my %attribs = $pkg->attribs();
          my ($name, $desc) = $pkg->attribs('name', 'desc');
Params  : If you specify attribute names, their values are returned as
          a list.  Otherwise, returns a hash of all attributes.
Returns : Either a hash or a list.

attribs_ref

This is the same as attribs, but it returns a hashref or
arrayref instead.

SEE ALSO

ALPM, ALPM::DB

AUTHOR

Justin Davis, <jrcd83 at gmail>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Justin Davis

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.