Hi auch,
%pingarray=<Ping>; <-- mit dem befehl will ich
bewirken, das alle einträge von dem Handle <ping>
in das hash geschrieben werden.
das kann ich mir nicht so recht vorstellen.
Ein Hash ist ja nun kein Array.
dann sortiere ich den kram und suche immernoch
nach einer möglichkeite das hash zu durchsuchen
und dann das result auszugeben.
Ich habe den Eindruck, daß Du das Wesen eines Hashes
noch nicht wirklich verstanden hast.
Weder Sortieren noch Durchsuchen sollten in Deinem
Fall überhaupt ein Thema sein.
ich verstehe irgendwie nicht, wie ich auf einen
nicht bekannten key zugreifen kann.
Ich verstehe nicht, wozu Du das brauchen solltest.
Die Menge aller Keys kannst Du Dir mit der Funktion
keys(%hash) berechnen und eine Schleife drüber laufen
lassen.
in dem hash ist es ja möglich einem key (meine ip),
die vorhandenen gleichen ip adressen, oder am besten
direkt die häufigkeit zuzuweisen.
Genau. Und das würde ich schon beim Einlesen machen:
while (<PING>)
{ $hash {$_} ++; }
Dabei werden die einzelnen Hash-Elemente bei Bedarf
angelegt (und quasi implizit mit dem Wert 0 initia-lisiert - äh, nicht wirklich, aber es kommt auf das-selbe heraus).
Das Verarbeiten geht dann mit
foreach my $this_key (keys (%hash))
{ irgendwas ($hash {$this_key}); )
Und statt einer unsortierten Folge von Schlüsseln
kannst Du auch eine sortierte verwenden:
foreach my $this_key (sort (keys (%hash)))
{ irgendwas ($hash {$this_key}); )
Viele Grüße
Michael
P.S.: Mal sehen, wie viele Syntaxfehler ich diesmal
wieder drin habe ... :-\