Vielleicht ist aber auch nur der Begriff lokal falsch gewählt.
Mit my deklarierst du Variabeln lokal in einem scope, ein package ist kein scope.
Zitat perldoc.perl.org:
A my declares the listed variables to be local (lexically) to the enclosing block, file, or eval
File kann doch auch genau ein package enthalten.
Und die Folge dieser seltsamen Definitionen ist damit wohl,
dass das Verhalten unterschiedlich ist, je nachdem ich ein package direkt im Programm angebe oder es über use p1 von einer externen Datei hole.
Dies ist für mich völlig unverständlich!