Provided by: libdebian-source-perl_0.99_all bug

NAME

       Debian::Dependency - dependency relationship between Debian packages

SYNOPSIS

                                           # simple dependency
          my $d = Debian::Dependency->new( 'perl' );
                                           # also parses a single argument
          my $d = Debian::Dependency->new('perl (>= 5.10)');
                                           # dependency with a version
          my $d = Debian::Dependency->new( 'perl', '5.10' );
                                           # dependency with version and relation
          my $d = Debian::Dependency->new( 'perl', '>=', '5.10' );

          print $d->pkg;  # 'perl'
          print $d->ver;  # '5.10'

                                           # for people who like to type much
          my $d = Debian::Dependency->new( { pkg => 'perl', ver => '5.10' } );

          # stringification
          print "$d"      # 'perl (>= 5.10)'

          # 'adding'
          $deps = $dep1 + $dep2;
          $deps = $dep1 + 'foo (>= 1.23)'

   CLASS_METHODS
       new()
           Construct a new instance.

       new( { pkg => 'package', rel => '>=', ver => '1.9' } )
           If a hash reference is passed as an argument, its contents are used to initialize the
           object.

       new( [ { pkg => 'foo' }, 'bar (<= 3)' ] );
           In an array reference is passed as an argument, its elements are used for constructing
           a dependency with alternatives.

       new('foo (= 42)')
       new('foo (= 42) | bar')
           If a single argument is given, the construction is passed to the "parse" constructor.

       new( 'foo', '1.4' )
           Two arguments are interpreted as package name and version. The relation is assumed to
           be '>='.

       new( 'foo', '=', '42' )
           Three arguments are interpreted as package name, relation and version.

       set Overrides the set method from Class::Accessor. Used to convert zero versions (for
           example 0 or 0.000) to void versions.

       parse()
           Takes a single string argument and parses it.

           Examples:

           perl
           perl (>= 5.8)
           libversion-perl (<< 3.4)

   FIELDS
       pkg Contains the name of the package that is depended upon

       rel Contains the relation of the dependency. May be any of '<<', '<=', '=', '>=' or '>>'.
           Default is '>='.

       ver Contains the version of the package the dependency is about. The value is an instance
           of Dpkg::Version class. If you set it to a scalar value, that is given to
           Dpkg::Version->new().

       "rel" and "ver" are either both present or both missing.

       Examples

           print $dep->pkg;
           $dep->ver('3.4');

METHODS

       satisfies($dep)
           Returns true if $dep states a dependency that is already covered by this instance. In
           other words, if this method returns true, any package satisfying the dependency of
           this instance will also satisfy $dep ($dep is redundant in dependency lists where this
           instance is already present).

           $dep can be either an instance of the Debian::Dependency class, or a plain string.

               my $dep  = Debian::Dependency->new('foo (>= 2)');
               print $dep->satisfies('foo') ? 'yes' : 'no';             # no
               print $dep->satisfies('bar') ? 'yes' : 'no';             # no
               print $dep->satisfies('foo (>= 2.1)') ? 'yes' : 'no';    # yes

SEE ALSO

       Debian::Dependencies

AUTHOR

       Damyan Ivanov <dmn@debian.org>

COPYRIGHT & LICENSE

       Copyright (C) 2008,2009,2010 Damyan Ivanov <dmn@debian.org>

       This program is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License version 2 as published by the Free Software Foundation.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program;
       if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
       Boston, MA 02110-1301 USA.