[Weiter] [Zurück]

Sichtbarkeit und Namensräume


Alle Variablen (mit Ausnahme der mit local oder my vereinbarten) sind eigentlich global sichtbar. Man kann jedoch mit der package Anweisung zwischen verschiedenen Namensräumen umschalten. Der zu Beginn voreingestellte Namensraum ist main.

Beispiel:

    require 'show.pl';

    $a = 1;

    package A;
    $a = 2;

    package B;
    $a = 3;

    package main;

    &show(qw( $a ));
    &show(qw( $::a ));
    &show(qw( $main::a ));
    &show(qw( $A::a ));
    &show(qw( $B::a ));
    &show(qw( $B::{'a'} ));
    &show(qw( ${$B::{'a'}} ));

    *::a = \$B::a;

    print "\n";
    &show(qw( $a ));
    &show(qw( $A::a ));
    &show(qw( $B::a ));

Ausgabe:

    $a           = 1
    $::a         = 1
    $main::a     = 1
    $A::a        = 2
    $B::a        = 3
    $B::{'a'}    = *B::a
    ${$B::{'a'}} = 3

    $a           = 3
    $A::a        = 2
    $B::a        = 3
 
[Weiter] [Zurück]