Dies im zu improtierenden Modulmodul
our $PC;
# auch wenn ich dann auf die Variable im Hauptmodulzugreife, ich brauche sie hier wegen der Compilierphase und runtime bei require.
our %ex = (
# Hier wird eine Funktione für [title:] deklariert
# Es gibt die funktion und defaultwerte.
Im Hauptscript brauche ich auch!!!
our $PC = sub{...};
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...
Nicht das ich das in der Doku gefunden hätte, aber ich war im Abschnitt perlsub wo nochmals über den Zusammenhang von my und our, bzw ihren Unterschied, gesprochen wird.
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.
na dann machen wir mal weiter...
mfg Beat