---
name: "Lintian::Relation::Version"
section: "3"
platform: "linux"
package: "lintian"
version: "2.122.0"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Lintian::Relation::Version"
---

# Lintian::Relation::Version(3)

Comparison operators on Debian versions

## NAME

Lintian::Relation::Version - Comparison operators on Debian versions

## SYNOPSIS

```
    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');
```

## DESCRIPTION

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) {
      ...
   }
  ```

## AUTHOR

Originally written by Russ Allbery \<rra@debian.org\> for Lintian and adapted to use libapt-pkg-perl by Adam D. Barratt \<adam@adam-barratt-org.uk\>.

## SEE ALSO

[**lintian**(1)](/lintian/1.md)
