Packages, Namespace, Scope oder Geltungsbereich von Symbolen

Ohne Schlüsselworte gilt der aktuelle Namensraum

Unter ​Symbolen ​verstehen ​sich ​Variablennamen, ​Funktionsnamen, ​Klassen, ​Packages ​und ​Perlmodule.

In ​jedem ​Perl-Programm ​gibt ​es ​eine ​
 ​ ​ ​package ​main;

auch ​dann, ​wenn ​diese ​nicht ​explizit ​so ​deklariert ​ist. ​Funktionsaufrufe ​wie
 ​ ​ ​foo();
 ​ ​ ​bar();

erwarten ​diese ​Funktionen ​im ​aktuellen ​Scope. ​Voll ​qualifiziert ​könnten ​wir ​auch ​notieren:
 ​ ​main::foo();

Die ​zuletzt ​gezeigte ​Schreibweise ​ist ​genauso ​auch ​auf ​andere, ​von ​der ​main ​abweichende ​Packages ​anwendbar, ​z.B.: ​Carp::confess(); ​usw. ​Wobei ​die ​entsprechende ​Package ​natürlich ​vorher ​kompiliert, ​sprich ​mit ​use, ​do ​oder ​require ​eingebunden ​wurde. ​Zu ​Letzterem ​gibt ​der ​Hash ​%INC, ​als ​Bestandteil ​der ​Symboltabelle ​Auskunft, ​also ​welche ​Package ​mit ​welchem ​Pfad ​zur ​Laufzeit ​verfügbar ​ist.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.