Struppi: uff uff! our our gib uns heute...

Beitrag lesen

Ich bin nicht sicher, ob ich alles verstanden habe. Aber ich finde nach wie vor, dass dein Weg sehr umständlich klingt oder zumindest verwirrend ist.

Wenn ich Variabeln exportieren möchte, benutze ich Exporter.

Das ist der springende Punkt und meine heutige Erkenntnis.

Wenn ich in ein Modul oder Programm Data aus einem anderen Modul importieren will, dann müssen in importierten Modul Varailen als stubs mit our deklariert werden.
Aber auch im einbindenden Modul muss jetzt jede Variable, auf die eine importierte sub zugreift, mit our deklariert werden.

Uff...

Wie schonmal gesagt, ich persönlich benutze so gut wie nie our. Das ist aus Sicht von OOP auch keine saubere Lösung, ein Variabel oder Objektattribut öffentlich zu machen, daher vermeide ich dies wo immer ich kann. Ausser z.b. bei Konstanten.

my gehört zu keinem package. my hat nichts mit packages zu tun, sondern mit Blockscope.
our gehört zum package, in dem es deklariert wird. Es lässt sich immer adressieren über den package Namen. our ist frei von Blockscope.

Was das angeht hat Siechfred einen passenden Artikel  übersetzt.

na dann machen wir mal weiter...

Wenn ich dich jetzt richtig verstanden habe, hast du ein Hauptmodul, dass Perl Module nachlädt, die Text verarbeiten/parsen sollen. Dieser enthält Funktionen und Attribute, ist also am Schluss ein Objekt.

Wenn die Module Zugriff auf die Instanz des Hauptmoduls haben sollen, solltest du diese z.b. dem Konstruktor übergeben oder an der Stelle wo der Text geparst wird.

Und um ein bisschen konkret zu werden.

Ich hab an deinem Konzept nicht verstanden, was mit den geparsten Modulen passieren soll.
Du hast einmal die Texte und Module mit einem Hash %ex, aber was soll dann mit $PC passieren? Soll $PC erweitert werden? Mit einem Namensraum oder mit Funktionen?
Und wenn mit Funktionen, heißt das, das immer nur ein Modul geparst werden kann? Oder mehrere die sich eventuell gegenseitig überschreiben?

Und, bist du sicher, das dein Ansatz ein Vorteil gegenüber einem gängigen Templatesystem ist?

Struppi.