@@ -, +, @@ C4::Installer::PerlModules --- C4/Installer/PerlModules.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/C4/Installer/PerlModules.pm +++ a/C4/Installer/PerlModules.pm @@ -68,10 +68,12 @@ sub version_info { if ($params{'module'}) { return -1 unless grep {m/$params{'module'}/} keys(%$PERL_DEPS); eval "require $params{'module'}"; + my $pkg_version = $params{'module'} && $params{'module'}->can("VERSION") ? $params{'module'}->VERSION : 0; + my $min_version = $PERL_DEPS->{$params{'module'}}->{'min_ver'} // 0; if ($@) { return {$params{'module'} => {cur_ver => 0, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, upgrade => 0, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}}; } - elsif ($params{'module'}->VERSION lt $PERL_DEPS->{$params{'module'}}->{'min_ver'}) { + elsif (version->parse("$pkg_version") < version->parse("$min_version")) { return {$params{'module'} => {cur_ver => $params{'module'}->VERSION, min_ver => $PERL_DEPS->{$params{'module'}}->{'min_ver'}, upgrade => 1, required => $PERL_DEPS->{$params{'module'}}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}}; } else { @@ -82,10 +84,12 @@ sub version_info { for (sort keys(%{$PERL_DEPS})) { my $pkg = $_; # $_ holds the string eval "require $pkg"; + my $pkg_version = $params{'module'} && $params{'module'}->can("VERSION") ? $params{'module'}->VERSION : 0; + my $min_version = $PERL_DEPS->{$_}->{'min_ver'} // 0; if ($@) { push (@{$self->{'missing_pm'}}, {$_ => {cur_ver => 0, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}}); } - elsif ($pkg->VERSION lt $PERL_DEPS->{$_}->{'min_ver'}) { + elsif (version->parse("$pkg_version") < version->parse("$min_version")) { push (@{$self->{'upgrade_pm'}}, {$_ => {cur_ver => $pkg->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}}); } else { --