PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl -> Sortieren von Versionnummern



Tim Taylor
31-12-2003, 18:01
Hi zusammen,

kann mir jemand von Euch verraten, wie ich möglichst einfach Versionsnummern in Perl sortieren kann?

Beispiel
@zahlen=("1.12","1.2","1.13","2.11");
@zahlen2=sort @zahlen;
foreach $zahl (@zahlen2)
{
print "$zahl \n";
}

Das Ergebnis ist ja dann: 1.12 1.13 1.2 2.11
Das ist aber leider falsch, da Version 1.2 vor Version 1.12 kommt. Wie kann ich die Nummern richtig sortieren ? Für Hilfe und Ratschläge wäre ich sehr dankbar.

DaTa
31-12-2003, 18:12
Mal so als Ansatz:



#!/usr/bin/perl

use Data::Dumper;

@x = map { $_->[0] }
sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] }
map { [$_, split(/\./, $_, 2)] } qw/1.12 1.2 1.13 2.11/;

print Dumper(\@x);

Tim Taylor
01-01-2004, 12:45
Danke. Ich werde es gleich einmal ausprobieren.

Tim Taylor
01-01-2004, 13:08
Prima, es funktioniert. Jetzt muss ich nur noch verstehen wieso ;-)