Hallo,
$image_grid->[$x][$y] = %image; # hier wird ein multidimensionaler array von hash referenzen aufgebaut
Zuerst frage ich mich warum $image_grid->[$x][$y] und nicht $image_grid[$x][$y]. Aber das kann durchaus seine Gründe haben.
Allerdings speicherst Du in allen Arrayelemente eine Referenz auf das gleiche Hash, womit beim dereferenzieren alle das gleiche Ergebnis haben. Es kann durchaus sein, daß Du es so willst, was ich aber nicht annehme.
Willst Du verschiedene Werte abspeichern, dnan verwende
$image_grid->[$x][$y] = {%image};
print $image_grid->[0][0]{image_id}; # hier gibt er den wert richtig aus
Hmm, was ist wohl der richtige Wert?
print $image_grid->[0][0]{image_id}; # hier nicht mehr
Und was ist dann der falsche?
Grüße
Klaus
PS.: Warum das so ist, findest Du nach intensivem Studiom von
perldoc perlreftut
perldoc perlref
perldoc perllol
perldoc perldsc
heraus. Normalerweise sollte man diese Dokumenationen auf der Platte finden, zur Not auch unter http://www.perldoc.com;-)