Hi,
Eike Grothe schreibt hierzu: »Tritt bei der Programmausführung eine package-Anweisung auf, so gilt ab dort der Namensraum des entsprechenden Packages mit eigenen Variablen. Das heißt, jede Variable ist an ein bestimmtes Package gebunden. Wichtige Ausnahmen hiervon sind Variablen, die mit my deklariert werden, sowie spezielle Variablen wie $_ oder @ARGV.«
Ich glaube, da herrscht doch unter den Experten noch große Uneinigkeit. Im Buch Webprogrammierung mit Perl und CGI steht:
Mit my wird der Geltungsbereich einer Variablen eingeengt. Ohne my sind Variablen global und aus jeder Programmebene heraus aufrufbar, aber eben auch überschreibbar. Mit my wird der Geltungsbereich auf einen Namensraum (Anmerkung von mir: also u.a. auf ein package, was in meinem Beispiel nicht der Fall ist) oder eine Anweisungsblock eingeschränkt.
Mein Vertrauen in Perl ist tief erschüttert!
Gruß
Connie