Thread Verständnisfrage Datentypen (Array/Hash/literale "Listen") (29 answers)
Opened by tschloss at 2008-11-29 13:20

tschloss
 2008-11-29 13:20
#116700 #116700
User since
2008-04-21
30 Artikel
BenutzerIn
[default_avatar]
Hi, durch mein Problem vor ein paar Tagen und eure Antworten hat sich mein Verständnis bzgl. der komplexen Datentypen jetzt geändert. Bevor ich mein Hirn aber nun endgültig "flushe", frage ich euch, ob mein Weltbild so korrekt ist:

1) Die Datentypen Array, Hash und literale Liste (zB "qw....") sind (intern) eigentlich immer Listen von Skalaren.
2) Je nach Datentyp/Kontext wird diese Liste nur anders interpretiert, vor allem was den Zugriff auf Elemente betrifft.
3) Zuweisungen auch zwischen verschiedenen Typen sind problemlos möglich (bei Hashes treten Elemente immer paarweise auf (interpretiert als key, value)). (Anmerkung: das könnte aber auch eine Intelligenz des Zuweisungsoperators sein, den Typ umzucasten)
4) Gleiches gilt auch für die Übergabe an Subroutinen. Es werden eigentlich immer nur Wertelisten übergeben. Wie die Routine diese dann interpretiert, ist deren Sache. Die Subroutine weiss nicht, dass die übergebenen Skalare ursprünglich mal ein Array oder Hash waren.

Ich habe etwas experimentiert und Perl hat obige Thesen eigentlich bestätigt.
Fragen aber:
1) Merkt Perl sich irgendwo einen Datentyp für Arrays/Hashes?
2) Woher weiss z.B. "Dumper", was sich hinter einer Referenz verbergen soll?
3) Benötigt Perl nicht irgendwelche Metainfos zum effizienteren Zugriff auf eine Struktur, und zwar unterschiedliche für ein Array/eine Liste bzw. einen Hash?

Danke für erhellende Kommentare. Das ist wichtig für meine weitere "Perl-Karriere ;)".

VG Thomas

View full thread Verständnisfrage Datentypen (Array/Hash/literale "Listen")