Nobody-Util
view release on metacpan or search on metacpan
Nobody/Util.pm view on Meta::CPAN
# ---------------------------------------------------------------------------
# Version comparison
# ---------------------------------------------------------------------------
sub vcmp {
my ($a, $b) = (
@_ == 2 ? (shift, shift) :
@_ ? do { warn "Warning: vcmp wants 2 args or none"; (undef, undef) } :
($a, $b)
);
my @a = split m{(\D+)}, $a;
my @b = split m{(\D+)}, $b;
no warnings;
while (@a and @b and $a[0] eq $b[0]) {
shift @a;
shift @b;
}
return 0 unless @a or @b;
return @a <=> @b unless @a and @b;
return $a[0] <=> $b[0] || $a[0] cmp $b[0];
}
( run in 0.907 second using v1.01-cache-2.11-cpan-71847e10f99 )