=head1 NAME ALPM::DB - Database base class, inherited by local and sync databases. =head1 SYNOPSIS use ALPM::Conf qw(/etc/pacman.conf); my $db = $alpm->localdb; printf "Playing with %s database\n", $db->name; my $perl = $db->find('perl') or die 'where is perl'; $db = $alpm->register('community') or die; $db->add_server('ftp://ftp.archlinux.org/community/os/i686') or die; for my $pkg ($db->search('perl')){ printf "%s\t%s\n", $pkg->name, $pkg->version; } for my $pkg ($db->find_group('xfce4')){ printf "xfce4:\t%s\t%s\n", $pkg->name, $pkg->version; } my %grps = $db->groups; while(my($g, $pkgs) = each %grps){ printf "%s\t%s\n", $g, $_->name for(@$pkgs); } =head1 OBJECT METHODS =head2 name $NAME = $DB->name() =over 4 =item C<$NAME> The previously assigned name of the database or 'local' for the local database. =back =head2 pkgs @PKGS = $DB->pkgs() =over 4 =item C<@PKGS> A list of packages in the package cache for this database. =back =head2 find $PKGS | undef = $DB->find($NAME) =over 4 =item C<$NAME> The exact name of a package to look for. =item C<$PKGS> On success, an L<ALPM::Package> object of the package found. =item C<undef> On failure, returned when a matching package is not found. =back =head2 search @PKGS = $DB->search($MATCH) =over 4 =item C<$MATCH> A substring to search for within the names of packages. =item C<@PKGS> A list of found packages, in the form of L<ALPM::Package> objects. This may be empty. =back =head2 groups %GROUPS = $DB->groups() =over 4 =item C<%GROUPS> A hash (name/value pairs) of groups contained within the database. Each group name is followed by an arrayref of L<ALPM::Package> objects. This may be empty. =back =head2 find_group @PKGS = $DB->find_group($NAME) =over 4 =item C<$NAME> The exact name of a group to search for. =item C<@PKGS> A list of packages which belong to the given group name. If no group was found then this is empty. =back =head1 SEE ALSO L<ALPM::DB::Local>, L<ALPM::DB::Sync>, L<ALPM::Package>, L<ALPM> =head1 AUTHOR Justin Davis, C<< <juster at cpan dot org> >> =head1 COPYRIGHT AND LICENSE Copyright (C) 2015 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.