Sieh Dir auch mal
Code:
perldoc perlref
perldoc perlreftut
an.
Dein Code zum speichern der Referenz ist auch nicht ganz richtig...
Du willst:
Code:
$ARRAY = (
[0] -> ['wert1', 'wert2', 'wert3', 'wert4'],
[2] -> ['wert11', 'wert22', 'wert33', 'wert44'],
[3] -> ['wert111', 'wert222', 'wert333', 'wert444']
)
Du hast:
Code:
$ARRAY = (
[0] -> { 'schluessel1' => 'wert1', 'schluessel2' => 'wert2' },
[1] -> { 'schluessel11' => 'wert11', 'schluessel22' => 'wert22' },
[2] -> { 'schluessel111' => 'wert111', 'schluessel222' => 'wert222' },
)
Ein Hash ist zwar, genau wie ein Array auch, nur eine Liste von Skalaren, hat aber den Unterschied, dass die Anzahl der Elemente eines Hashes durch zwei teilbar sein muss... es werden ja immer Key-Value Paare gespeichert.
Der Operater => ist auch nur ein Synonym für das Komma . Daher funktioniert Dein Code ohne Warnungen.
Trotzdem: Du erzeugst durch das {} eine Hashreferenz (Zeiger). Ersetze die {} gegen [] und alles wird gut
Element X vom Array @music enthält dann also eine Referenz (einen Zeiger) auf ein weiteres Array, indem dann wiederum Deine Werte liegen.
in den o.g. Perldocs suchst Du mal derefence bzw. unter "Using References -> Absatz 2".
Dort steht, wie Du wieder an Deine Werte rankommst
Lesezeichen