Lintian::Relation::Version(3)

Lintian::Relation::Version3

Comparison operators on debian versions

Usage

    print encode_utf8("yes\n") if versions_equal('1.0', '1.00');
    print encode_utf8("yes\n") if versions_gte('1.1', '1.0');
    print encode_utf8("no\n") if versions_lte('1.1', '1.0');
    print encode_utf8("yes\n") if versions_gt('1.1', '1.0');
    print encode_utf8("no\n") if versions_lt('1.1', '1.1');
    print encode_utf8("yes\n") if versions_compare('1.1', '<=', '1.1');

Overview

This module provides five functions for comparing version numbers. The underlying implementation uses "libapt-pkg-perl" to ensure that the results match what dpkg will expect.

Functions

versions_equal(A, B)

Returns true if A is equal to B ("=") and false otherwise.

versions_lte(A, B)

Returns true if A is less than or equal ("<=") to B and false otherwise.

versions_gte(A, B)

Returns true if A is greater than or equal (">=") to B and false otherwise.

versions_lt(A, B)

Returns true if A is less than ("<<") B and false otherwise.

versions_gt(A, B)

Returns true if A is greater than (">>") B and false otherwise.

versions_compare(A, OP, B)

Returns true if A OP B, where OP is one of "=", "<=", ">=", "<<", or ">>", and false otherwise.

versions_comparator (A, B)

Returns -1, 0 or 1 if the version A is (respectively) less than, equal to or greater than B. This is useful for (e.g.) sorting a list of versions:

 foreach my $version (sort versions_comparator @versions) {
    ...
 }

Releases

5 releases since Debian 9 (Stretch); the text changed 4 times.

  1. 9
  2. 10
  3. 11
  4. 12
  5. 13

Author

Originally written by Russ Allbery <[email protected]> for Lintian and adapted to use libapt-pkg-perl by Adam D. Barratt <[email protected]>.

From lintian 2.122.0 in Debian 13 (Trixie). Parsed by carta from the page's man source.