[Dresden-pm] Array-Verweis dereferenzieren?
Kristian Rink
afterimage at gmx.net
Die Feb 8 04:43:18 PST 2005
Salut alle;
eine reichlich triviale Frage, die mir trotz allem mehr Kopfzerbrechen
bereitet, als ich das anfänglich erwartet hätte. Situation: Ich hab eine
relativ sperrige Datenstruktur, in der ich mein Website-Navigations-Menü
mit mir herumtrage. Das Dingens ist im Wesentlichen ein Array voller
Hash-Referenzen (für jeden Menü-Punkt einer), und innerhalb dieser
Hashs gibt's für Untermenüs wiederum ein Array voller Hash-Referenzen.
Ob das übermäßig clever/performant/stabil/whatever ist, sei mal
dahingestellt. Mit dem Untermenü-Array funktioniert etwas der Art
print $menuitem->{"submenu"};
und gibt mir die korrekte zahl von Elementen im Untermenü aus. Was aber
nicht klappt, ist die Verwendung der ganzen Sache innerhalb von "for",
also (was naheliegend ist)
[I] for my $item (@{$menuitem->{"submenu"}}) { blablurb; }
ebensowenig wie (was ich eigentlich auch nicht vermutet hatte)
[II] for my $item ($menuitem->{"submenu"}) { blablurb; },
wobei ich in zweiterem Falle $item erwartungsgemäß mit der Anzahl der
Elemente in dem Array füttere.
Frage aber nun: Was habe ich übersehen? Und, wichtiger: Warum
funktioniert [I] nicht? Kann mich jemand erleuchten?
Danke und tschö,
Kris