Ich habe gerade mal ein wenig rumgespielt...
Wie GwenDragon schon schreibt, standardmäßig nutzt Perl den Namensraum "main".
Der wird aber normalerweise nicht explizit benannt, sondern ist halt da und wird genutzt.
Nun wird über die "main.pm" einiges definiert und ebenfalls in den Namensraum "main" geladen.
Mit "userFunctions" führst Du nun einen vollkommen neuen Namensraum ein und musst nun dafür Sorge tragen, dass im Skript die Funktionen und Variablen des jeweiligen Namensraums benutzt werden.
Ein grober Ansatz könnte evtl. sein, die "userFunctions" selber im Skript einzubinden und innerhalb der Funktionen, die in userFunctions.pm definiert werden, den Namensraum "main" explizit anzugeben, wenn Variablen/Funktionen daraus genutzt werden sollen.
Beispiel:
main.pm (2.1kb)
userFunctions.pm (1.5kb)
script.pl (1.5kb)
Und wenn man den
Exporter benutzt, kann man, wenn man will oder glaubt zu müssen, die Funktionen von userFunctions.pm auch direkt exportieren lassen, damit sie dann im Skript ohne "userFunctions::" voranzustellen, aufgerufen werden können.
Aber im Hintergrund schreit es danach, dass dieses Konstrukt u.U. mal auf neue und saubere Beine gestellt werden sollte.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!