Mark: Perl Hashes sortieren

Beitrag lesen

ich habe ein Hash-Array wie folgt:

Ich verstehe Hash of Arraysrefs
also
$hash = (a=>[0,1,2,3,4],b=>[]);

Du jedoch hast einen HashOfHashesOfHashesOfHashesOfHashesOfHashes der Tiefe 4 notiert.

my %ip;
$ip{"source"}{$src_ip}{$src_port}{$dest_ip}{$dest_port}+=$bytes_total;
...
my %sorted = sort {$a->[4] <=> $b->[4]} %ip;

Du greifst hier auf
$hash{id}[4] also auf das fünfte Element eines Hash of Arrays zu.
Stelle sicher, dass deine Datenstruktur auch ein HashOfArrays ist.

mfg Beat

Ok, das ist aber von mir so gewollt, dass es ein mehrdimensionales Hash ist. Wie kann man also in einem mehrdimensionalen Hash nach dem Wert von $dest_port sortieren? Oder die sortierte Reihenfolge der Keys ausgeben?