Hi,
müsste ich es nicht so schreiben, damit ich nach den total_bytes sortiere (5. Spalte)?:
my @sortedkeys = sort { $a->[4] <=> $b->[4] } keys %ip;
$a und $b sind jeweils Einträge aus deinem Hash. In deinem Hash hat %ip nur einen Eintrag, da ist also nichts zu sortieren. Du willst also nur einen Unterhash sortieren. Vielleicht extrahierst du den mal und gehst das Thema dann mal Schritt für Schritt durch.
Was mache ich dann mit dem erhaltenen array, Wenn ich meine Liste sortiert ausgeben möchte?
foreach(@sortedkeys){ ??? }
In der Schleife kannst du entsprechend auf das Hash-Element mit dem Index $_ zugreifen. Das nächste Element ist also
$ip{$_}
. Wenn du einen Unter-Hash sortieren willst, dann musst du das dann innerhalb der Schleife tun.Bis die Tage,
Matti
Hallo,
das ganze mit foreach durchzurattern ist nicht das Problem:
foreach $key_src_ip (keys %{$ip{"source"}}){
foreach $key_src_port (keys %{$ip{"source"}{$key_src_ip}}){
foreach $key_dest_ip (keys %{$ip{"source"}{$key_src_ip}{$key_src_port}}){
foreach $key_dest_port (keys %{$ip{"source"}{$key_src_ip}{$key_src_port}{$key_dest_ip}}){
}
}
}
}
Es stellt sich mir nur die Frage, wie man jetzt in der letzten Spalte nach dem höchsten Wert sortiert und irgendwie den kompletten Key-Pfad dorthin erhält.
Gruß