Ich habe eine Datei, die in etwa so aussieht:
hans.3.dort
peter.1.drüben
ich.8.unten
du.19.oben
wir.3.woanders
uswJetzt möchte ich mir die Zeilen anzeigen lassen sortiert nach der Zahlengröße also ähnlich wie eine rangliste.
Ich bekomm es einfach nicht hin könntet ihr mir bitte nochmal helfen?
Es ist offensichtlich so, dass du
- Die Zahl extrahieren musst
- einen Zähler hinzufügst mit sprintf und führenden 0en gepadded.
- so dass du hast:18001, 9002, 3003, 17004
Diese Zahl kannst du dann als Key eines hashes verwenden
Der Wert des Hashelements ist dein originales Datum.
Dann kannst du die hashkeys sortieren.
Und die sortierten Hashwerte ausgeben
Also
my $cnt=0;
my %S;
while(<>){
/.(\d+)./ and $S{ $1. sprintf("%04d", ++$cnt) } = $_;
}
foreach (sort {$a <=> $b} keys %S){
print $S{$_};
}
oder so ähnlich...
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische