mal ne packaging frage
Cruz
- perl
Hallo Leute,
ich komme einfach nicht dahinter, wie ich aus einem package heraus eine Variable im main package zugreifen kann.
Hier ist ein Code Snippet:
package main;
use strict;
my $variable = "hallo"; # muss mit my declariert werden, weil strict
sub routine
{
print "something";
}
package sub;
use strict;
&main::routine(); # das geht
print $variable; # das geht nicht
Die Variable sollte global verfügbar sein, aber strict zwingt mich dazu sie mit my zu deklarieren, wodurch sie nur noch im main package zur Verfügung steht.
Kann man das nicht irgendwie hinkriegen, dass man doch auf die Variable global zugreifen kann?
Gruß,
Cruz
Halihallo Cruz
ich komme einfach nicht dahinter, wie ich aus einem package heraus eine Variable im main package zugreifen kann.
$main::variable oder
@main::variable oder
%main::variable
kommt auf den Typ an.
Die Variable sollte global verfügbar sein, aber strict zwingt mich dazu sie mit my zu deklarieren, wodurch sie nur noch im main package zur Verfügung steht.
Nein, er erlaubt auch die Verwendung von
perldoc -f our
perldoc vars
Viele Grüsse
Philipp
Hi Philipp,
$main::variable oder
@main::variable oder
%main::variablekommt auf den Typ an.
Das habe ich schon probiert, funktioniert aber leider nicht. Ich verstehe nicht warum.
Ich kriege diese Warnung im Error Log:
Use of uninitialized value in print at framework/Db.pm line 16.
Woran liegt das?
Gruß,
Cruz
Halihallo Cruz
Das habe ich schon probiert, funktioniert aber leider nicht. Ich verstehe nicht warum.
Sorry, mein Fehler. Die Variablen _müssen_ als global zugreifbar deklariert werden.
Nochmals: use vars qw(...) oder our.
Viele Grüsse
Philipp
Ok hab's danke schön!!
Gruß,
Cruz
use Mosche;
Sorry, mein Fehler. Die Variablen _müssen_ als global zugreifbar deklariert werden.
Nochmals: use vars qw(...) oder our.
Oder per Exporter.pm explizit freigegeben sein...
use Tschoe qw(Matti);