my @a = @{ $v1->version };
my @b = @{ $v2->version };
- while (@a and @b) {
+ {
my $x = shift @a;
my $y = shift @b;
my $c = $x <=> $y;
return $c if $c;
}
+ while (@a and @b) {
+ my $x = shift @a;
+ my $y = shift @b;
+ my $c;
+ if ($x =~ /^0/ or $y =~ /^0/) {
+ s/0+\z// for $x, $y;
+ $c = $x cmp $y;
+ } else {
+ $c = $x <=> $y;
+ }
+ return $c if $c;
+ }
+
return 1 if @a;
return -1 if @b;
}