biont
Grünschnabel
Hallo zusammen,
irgendwie scheitere ich gerade daran, meine sehr lange Hauptdatei in viele Module (*.pm) mit einem Steuerprogramm (.pl) zu unterteilen. Folgende Konfiguration:
Im Hauptprogramm "haupt.pl"
Im Modul "neben1.pm"
Da kommt dann eine Fehlermeldung à la:
Offensichtlich erkennt der Interpreter ja, dass die Variable "global" ist. Warum entscheidet er sich dann, dass er sie nicht beschreiben kann, weil sie nie im Modul deklariert wurde...?
Wie kann ich sonst das Problem lösen, dass ich eine Variable aus dem Hauptprogramm in einem Untermodul beschreiben kann? Wozu stoße ich überhaupt (per use-Befehl) den Namespace-Austausch zwischen den Teilen an?
Ein mitgeben des Package-Names mag er ja auch nicht (in neben1.pm):
=>
Grüße
<------EDIT------>
Ein
wirkt Wunder...
Trotzdem bin ich irritiert, dass "our" nicht _richtig_ global macht...
irgendwie scheitere ich gerade daran, meine sehr lange Hauptdatei in viele Module (*.pm) mit einem Steuerprogramm (.pl) zu unterteilen. Folgende Konfiguration:
Im Hauptprogramm "haupt.pl"
Code:
use strict;
use neben1;
our $glob_var;
Im Modul "neben1.pm"
Code:
package neben1;
$glob_var = 5;
1;
Da kommt dann eine Fehlermeldung à la:
Global symbol "$glob_var" requires explicit package name at blabla/neben1.pm line 3...
Offensichtlich erkennt der Interpreter ja, dass die Variable "global" ist. Warum entscheidet er sich dann, dass er sie nicht beschreiben kann, weil sie nie im Modul deklariert wurde...?
Wie kann ich sonst das Problem lösen, dass ich eine Variable aus dem Hauptprogramm in einem Untermodul beschreiben kann? Wozu stoße ich überhaupt (per use-Befehl) den Namespace-Austausch zwischen den Teilen an?
Ein mitgeben des Package-Names mag er ja auch nicht (in neben1.pm):
Code:
main::$glob_var = 5;
Bad name after main:: at blabla/neben1.pm...
Grüße
<------EDIT------>
Ein
Code:
$main::glob_var = 5;
Trotzdem bin ich irritiert, dass "our" nicht _richtig_ global macht...
Zuletzt bearbeitet: