You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
761 B
Perl
42 lines
761 B
Perl
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Dpkg::Version;
|
|
|
|
my @versions = ();
|
|
while ( my $line = <> ) {
|
|
chomp $line;
|
|
my $ver = Dpkg::Version->new( $line, check => 1 );
|
|
die "not a valid version: $line" if !defined $ver;
|
|
push @versions, [ $ver, $line ];
|
|
}
|
|
|
|
sub myvercomp {
|
|
|
|
# Dpkg::Version overloads <=>
|
|
my $ret = $a->[0] <=> $b->[0];
|
|
if ( $ret == 0 ) {
|
|
|
|
# fall back to string comparison
|
|
return $a->[1] cmp $b->[1];
|
|
}
|
|
return $ret;
|
|
}
|
|
@versions = sort myvercomp @versions;
|
|
|
|
my $last = shift @versions;
|
|
print "$last->[1]";
|
|
foreach my $v (@versions) {
|
|
if ( ( $last->[0] <=> $v->[0] ) == 0 ) {
|
|
print " ";
|
|
}
|
|
else {
|
|
print "\n";
|
|
}
|
|
$last = $v;
|
|
print "$v->[1]";
|
|
}
|
|
print "\n";
|