hallo, das hash %daten_all soll unter einer $id bestimmte URLs mit IPs, Beschreibungen (DESCR), Ports und einer von mir zuvor festgelegtn Priorität (PRIO) speichern.
Die bestehenden Daten liegen im folgenden Format vor:
URL#DESCR#PRIO#IP#PORT, also z.b.
www.google.de#Suchmahscine#1#123.456.789.101#80
foreach(@arr_daten) {
@arr_daten_splitted = split(/#/,$_); # Daten als Array
$url = @arr_daten_splitted[0];
$descr = @arr_daten_splitted[1];
$prio = @arr_daten_splitted[2];
$ip = @arr_daten_splitted[3];
$port = @arr_daten_splitted[4];
$id++;
%daten_all = ( $id => {'URL',$url,'DESCR',$descr,'PRIO',$prio,'IP',$ip,'PORT',$port})
}
wenn ich jetzt z.b. "print $daten_all{2}{DESCR};" mache, bekomme ich nix. einzige möglichkeit ist die ID des letztens hash elements (in meinem fall gibt es 56 datensätze, also "print $daten_all{56}{DESCR}"), die dann DESCR, IP, PORT etc ausgeben kann.
ich dachte, dass ein hash nur auf keinen "key hört", wenn ich also einen neuen key generiere ($id++) darf perl das doch nicht über den vorherigen speichern, oder?
was habe ich falsch gemacht?
danke für eure hilfe!