PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl: hash nach einem value sortieren



bash_azubi
23-05-2005, 08:04
Hi,
ich habe in perl einen hash, der z.B. folgenden Inhalt hat:

id_Nummer => "value1", "value2", "value3", "2005.04.21"

Jetzt kann ich mittels foreach $key(sort keys %hash){...} den hash nach id_Nummer sortieren lassen.
Ich benötige nun aber eine Sortierung nach dem letzten value - nach dem Datum.

Wie erreiche ich das mit meinen bescheidenen Perl Kenntnissen?

Vielen Dank für einen Hinweis

Joghurt
23-05-2005, 11:11
Ich würde es mal mit
foreach $key (sort {$hash{$a}[-1] cmp $hash{$b}[-1]} keys %hash) versuchen.

PS: Es muss %hash = (id_Nummer => ["value1", "value2", "value3", "2005.04.21"]) heißen

bash_azubi
23-05-2005, 16:07
uff, danke!
Den Konstrukt muß ich erstmal auseinandernehmen. :)

Die eckigen Klammern habe ich gesetzt, war schändlicherweise nur zu faul sie zu schreiben - danke für den Hinweis.

Kann man auch ein @rray so einfach sortieren? Das wäre nämlich auch noch so ein Knackpunkt... :rolleyes:

bash_azubi
23-05-2005, 21:36
Ich habe mir heute noch am Bahnhof 'Perl Nitty Gritty' aus dem Addison Wesley Verlag zugelegt. Da sind u.a. klasse Beispiele zum Aufbau von hashs, arrays und deren Sortiermöglichkeiten erwähnt.
Ich lese jetzt erst mal ne Weile und setzte die dort aufgeführten Beispiele um, dann muß ich euch hier nicht mehr belästigen :)