Beat: Dateiinhalt sortiert ausgeben

Beitrag lesen

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
usw

Jetzt 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