A tool can compare fixed version strings to decide whether a requirement is met.

Version Compare

version_compare.pl
use strict;
use warnings;

sub version_at_least {
    my ($current, $required) = @_;
    my ($cur_major, $cur_minor, $cur_patch) = split /\./, $current;
    my ($req_major, $req_minor, $req_patch) = split /\./, $required;
    my $current_number = $cur_major * 10000 + $cur_minor * 100 + $cur_patch;
    my $required_number = $req_major * 10000 + $req_minor * 100 + $req_patch;
    return $current_number >= $required_number;
}

my $current = ;
my $required = "1.3.0";
my $ok = version_at_least($current, $required);
my $status = $ok ? "ok" : "upgrade";

print "current=$current\n";
print "required=$required\n";
print "status=$status\n";
use strict;
use warnings;

sub version_at_least {
    my ($current, $required) = @_;
    my ($cur_major, $cur_minor, $cur_patch) = split /\./, $current;
    my ($req_major, $req_minor, $req_patch) = split /\./, $required;
    my $current_number = $cur_major * 10000 + $cur_minor * 100 + $cur_patch;
    my $required_number = $req_major * 10000 + $req_minor * 100 + $req_patch;
    return $current_number >= $required_number;
}

my $current = ;
my $required = "1.3.0";
my $ok = version_at_least($current, $required);
my $status = $ok ? "ok" : "upgrade";

print "current=$current\n";
print "required=$required\n";
print "status=$status\n";
use strict;
use warnings;

sub version_at_least {
    my ($current, $required) = @_;
    my ($cur_major, $cur_minor, $cur_patch) = split /\./, $current;
    my ($req_major, $req_minor, $req_patch) = split /\./, $required;
    my $current_number = $cur_major * 10000 + $cur_minor * 100 + $cur_patch;
    my $required_number = $req_major * 10000 + $req_minor * 100 + $req_patch;
    return $current_number >= $required_number;
}

my $current = ;
my $required = "1.3.0";
my $ok = version_at_least($current, $required);
my $status = $ok ? "ok" : "upgrade";

print "current=$current\n";
print "required=$required\n";
print "status=$status\n";
version requirement A version requirement names the minimum version a dependency should provide.