use CPAN::Version;
- CPAN::Version->vgt("1.1","1.1.1"); # 1
+ CPAN::Version->vgt("1.1","1.1.1"); # 1 bc. 1.1 > 1.001001
- CPAN::Version->vcmp("1.1","1.1.1"); # 1
+ CPAN::Version->vlt("1.1","1.1"); # 0 bc. 1.1 not < 1.1
+
+ CPAN::Version->vcmp("1.1","1.1.1"); # 1 bc. first is larger
+
+ CPAN::Version->vcmp("1.1.1","1.1"); # -1 bc. first is smaller
CPAN::Version->readable(v1.2.3); # "v1.2.3"
package CPAN::Version;
+use strict;
+use vars qw($VERSION);
+$VERSION = sprintf "%.6f", substr(q$Rev: 561 $,4)/1000000 + 5.4;
+
# CPAN::Version::vcmp courtesy Jost Krieger
sub vcmp {
- my($self,$l,$r) = [at]_;
+ my($self,$l,$r) = @_;
local($^W) = 0;
CPAN->debug("l[$l] r[$r]") if $CPAN::DEBUG;
}
sub vgt {
- my($self,$l,$r) = [at]_;
+ my($self,$l,$r) = @_;
$self->vcmp($l,$r) > 0;
}
+sub vlt {
+ my($self,$l,$r) = @_;
+ 0 + ($self->vcmp($l,$r) < 0);
+}
+
sub vstring {
- my($self,$n) = [at]_;
+ my($self,$n) = @_;
$n =~ s/^v// or die "CPAN::Version::vstring() called with invalid arg [$n]";
pack "U*", split /\./, $n;
}
# vv => visible vstring
sub float2vv {
- my($self,$n) = [at]_;
+ my($self,$n) = @_;
my($rev) = int($n);
$rev ||= 0;
my($mantissa) = $n =~ /\.(\d{1,12})/; # limit to 12 digits to limit
}
sub readable {
- my($self,$n) = [at]_;
+ my($self,$n) = @_;
$n =~ /^([\w\-\+\.]+)/;
return $1 if defined $1 && length($1)>0;
# And if they say v1.2, then the old perl takes it as "v12"
- $CPAN::Frontend->mywarn("Suspicious version string seen [$n]\n");
+ if (defined $CPAN::Frontend) {
+ $CPAN::Frontend->mywarn("Suspicious version string seen [$n]\n");
+ } else {
+ warn("Suspicious version string seen [$n]\n");
+ }
return $n;
}
my $better = sprintf "v%vd", $n;