Klaus Mock: explicit package name?

Beitrag lesen

Hallo,

"Lexical scope" ist der lexikalische Gültigkeitsbereich, d.h. der
Block bzw. Bereich in deinem Programm, in dem eine bestimmte Variable
gültig ist. Wird eine Variable nicht -- zb. mit my -- für einen
bestimmten Gültigkeitsbereich deklariert, wäre dieser Bereich global,
was bei der Verwendung von "use strict;" nicht erlaubt ist.

Es würde, um der Vollständigkeit Ehre angedeien zu lassen, auch funktionieren, wenn Du Variablen mit (z.B.) $package::variablenname ansprechen würdest, ohne diese mit  my einzuführen. So würde

#!/usr/bin/perl -w
use strict;
$main::abc = 1;
print $main::abc;

keinen Fehler verursachen.

Variablen ständig so zu notieren wäre dann doch etwas mühselig, aber genau das ist es, was die Fehlermeldung bezüglich 'expicit package name' eigentlich aussagt.

Grüße
  Klaus