Hallo,
sorry, aber ich habs immer noch nicht begriffen!
#!/usr/bin/perl -w
use strict;
package p1;
my $var1 = "p1";
print "p1:$var1\n";
package p2;
print "p2:$var1\n";
package main;
print "main:$var1\n";
Ergebnis:
p1:p1
p2:p1
main:p1
Die lokale Variable $var1 ist deklariert im package p1 und trotzdem sichtbar im package main und sogar im package p2.
Ich hätte erwartet, dass die Variable in main und p2 nicht sichtbar ist.
Packages sollen doch dazu dienen, dass beliebieg viele Leute Routinen entwickeln,
die dann gemeinsam verwendet werden können. Nach dem obigen Ergebnis müßten sich aber
die Autoren absprechen, damit nur einer $var1 verwendet.
Patrick schrieb:
Nach außen unsichtbar bedeutet (s.o.): außerhalb des Blockes, in welchem eine my-Variable deklariert wurde, ist sie nicht »sichtbar«, Du kannst auf sie nicht zugreifen.
Nach innen: Innerhalb des Blockes kannst Du auf diese my-Variable sehr wohl zugreifen.
Wie müßte obiges Beispiel aussehen, damit $var1 in p2 und in main undefiniert ist?