Thread Referenzen Problem : sehr seltsam
(7 answers)
Opened by marky at 2008-05-29 20:34
Öhm ein
Code: (dl
)
if ( exists $SESSION->{foo}{bar}{baz} ) { ... } enthält automatisch auch eine Zuweisung... Wenn mämlich der eintrag "foo" in der ersten ebene nicht existiert dann erstellt du mit "$SESSION->{foo}{bar}..." bereits das element "foo" als Hasheintrag in der erste ebene. Jeder undefinierte Wert in Perl wird wenn du ihn derenferzierst automatisch den Typ zugeordnet so wie du auf ihn zugreift. Deswegen gehen ja auch sachen wie. Code: (dl
)
push @{$irgendwas->{werte}}, $wert Auch wenn du vorher nirgendswo ein Code: (dl
)
$irgendwas->{werte} = []; geschrieben hast. In diesem Fall wird dann der Eintrag werte beim ersten zugriff auch automatisch erstellt und es wird automatisch eine Arrayreferenz daraus gemacht. Und da du letztendlich direkt auf "->{foo}{bar}{baz}" zugreifst wird automatisch foo erstellt, damit dieses wiederum als hshref dereferenziert werden kann damit dort ein bar erstellt wird. Und dann wird erst gebrüft ob auf dieser ebene ein "baz" existiert. Wenn dann musst du es so machen wie "murphy" sagte. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|