Ups,
der Code stimmte die Kommentare allerdings nicht ... am ende in main liefert
print defined $foo_loc ? $foo_loc : 'undef';
eben die Ausgabe "my foo_loc"
ich korrigiers mal im Listing
use strict;
my $foo = 'declared in main';
$="\n";package bar;
$foo .= ' and modified in bar';
my $foo_loc = 'my foo_loc';
our $foo_glob = 'local in bar but visible outside';
print defined $bar::foo_loc ? $bar::foo_loc : 'undef'; # undefpackage main;
wir wollen keinen Scriptabbruch provozieren
no strict 'vars';
print defined $foo ? $foo : 'undef'; # declared in main and modified in bar
print defined $bar::foo_loc ? $bar::foo_loc : 'undef'; # undef
print defined $foo_loc ? $foo_loc : 'undef'; # my foo_loc <-HIER!!!
print defined $bar::foo_glob ? $bar::foo_glob : 'undef'; # local in bar but visible outside
Bye
Kurt