Und anbei sei angemerkt:
natürlich ist mein Code nicht lauffähig, er ist auch lediglich ein Pseudocode - wenn ers wäre, hät ich ja keine Probleme :)
Leider ist es aber auch sehr schwer aus diesem Code zu erkennen, was du eigentlich willst. Zumal, so wie du dir dein momentanes Ziel vorstellst, ist es in Perl falsch.
»»Wie gesagt, du definierst statische Variabeln, die in allen Instanzen gleich sind. Ich bezweifle, dass es das ist was du möchtest.
Wie geschrieben ist das eine Erkentniss, welche ihr mir zum Glück dargelegt habt - ergo suche ich nun einen Weg die Variable so zu definieren, dass sie eben nicht statisch ist
Steht in der Doku und hatte ich auch in meiner ersten Antwort ansatzweise schon gezeigt.
»»Der Schlüssel eines Hash ist immer eine Zeichenkette, warum willst du dort eine Instanz abspeichern?
Ich will ja nicht die Instanz an sich, sondern die Referenz auf die Instanz abspeichern.
auch das geht nicht, da der Schlüssel eine Zeichenkette ist, wandelt Perl die Referenz intern in eine Zeichenkette um. Ich frage mich warum du glaubst das wäre nützlich?
Somit kann ich über die Abfrage des Keys auf die Werte der Instanz kommen und muss nicht umständlich die Zeichenkette nehmen und nach einer Instanz suchen die genauso heißt.
Das verstehe ich nicht, ich vermute du hast einen Denkfehler in deinen überlegungen.
»»Welchen Zweck möchtest du mit dem Hash erfüllen?
Der Hash wird mit einem foreach durchlaufen und für jedes Value wird überprüft, ob der boolean true oder false ergibt. Erscheint ein false wird der Hash als "failed" deklariert. Wie lang der Hash wird, wie verschachtelt er ist ist vorher nicht bekannt und wird zur Laufzeit erst festgelegt.
Das erklärt nicht den Zweck, nur das was du möchtest. Aber was ist der Sinn dieser Sache. willst du rausfinden ob eine Instanz erzeugt wurde? Oder willst du den konkreten Wert einer Instanz? Für beide Fälle brauchst du kein Hash, da reicht z.b. auch ein Array deiner Instanzen.
Was im Endeffekt zu solchen Konstruktionen führt:
Hash[key,hash[key,hash[key,value,key,value],key,value]]
Tut mir leid, das verwirrt mich jetzt mehr als das es erklärt, warum du so umständlich auf die Instanzen zugreifen willst.
Z.b. das parent statt 'base' liefert bereits einen compilefehler.
Dann ist dein Perl zu alt. Aber parent nachzuinstallieren ist einfach.
Übrigens das A&O von Perl: wie verwendest du Module und wie installiert man diese? Ohne Module ist Perl nur ein Bruchteil Wert.
Struppi.