Scroll to navigation

Debian::Dependency(3pm) User Contributed Perl Documentation Debian::Dependency(3pm)


Debian::Dependency - dependency relationship between Debian packages


                                    # 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', profile => '!nocheck' } );
   # stringification
   print "$d"      # 'perl (>= 5.10)'
   # 'adding'
   $deps = $dep1 + $dep2;
   $deps = $dep1 + 'foo (>= 1.23)'


Construct a new instance.
If a hash reference is passed as an argument, its contents are used to initialize the object. Only "pkg" is required.
If an array reference is passed as an argument, its elements are used for constructing a dependency with alternatives.
If a single argument is given, the construction is passed to the "parse" constructor.
Two arguments are interpreted as package name and version. The relation is assumed to be '>='.
Three arguments are interpreted as package name, relation and version.
Overrides the set method from Class::Accessor. Used to convert zero versions (for example 0 or 0.000) to void versions.
Takes a single string argument and parses it.



Contains the name of the package that is depended upon
Contains the relation of the dependency. May be any of '<<', '<=', '=', '>=' or '>>'. Default is '>='.
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.


    print $dep->pkg;
Contains the "restriction formulas" (build profile) of a dependency; optional.


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





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.

2023-02-21 perl v5.36.0