Halihallo $xNeTworKx
Naja, mit den seltsamen Schreibweisen wie @{ komme ich irgendwie noch nicht ganz klar =), aber ich muss mir das noch genauer ansehen, danke.
Naja, ich kann ja mal versuchen mit einigen Sätzen helfen:
Ein Array oder Hash ist eine Ansammlung von einzelnen Skalaren (eg. Zahl, String, ...), wohingegen eine Array/Hash-Referenz ein Skalar ist, der die Adresse zum Hash/Array speichert. Der eigentliche Hash/Array "Inhalt" ist an der genannten Adresse zu finden, jedoch nicht in der Referenz per se (das ist ein Pointer/Zeiger auf den eigentlichen Inhalt).
Wenn du nun eine Arrayreferenz bildest...
$array_ref = @norm_array;
... dann enthält $array_ref die Adresse ( 'ARRAY(0xac98f2)' ) auf das Array (...).
Mit $array_ref kannst du eigentlich nicht sehr viel anfangen, da es lediglich eine Adresse enthält, um auf das Array selber zuzugreifen musst du die Referenz dereferenzieren:
@{$array_ref}
dann kannst du mit diesem Array arbeiten, z. B.
push @{$array_ref}, 'value';
das selbe geht mit Hashes, dort ändert einfach das @{ auf %{.
Naja, irgendwie führt das doch etwas sehr weit bzw. gibt missverständnisse, wenn man das in so kurzen Zügen erklären möchte, deshalb:
perldoc perldata
perldoc perlreftut
perldoc perllol
perldoc perlref
... sind da schon etwas ausführlicher.
Viele Grüsse und Spass bei der Lektüre ;-)
Philipp