Ich halte dynamische Scoping-Regeln in jedem Fall für einen schweren Design-Fehler, ob in JavaScript, Java oder Perl. Dynamisches Scoping drückt aus: „Du findest hier nicht alle Informationen, die du brauchst, um diesen Code zu verstehen, weil ein paar Informationen erst zur Laufzeit eintreffen.“
Dann verstehe ich unter dynamischen Scoping wahrscheinlich was Anderes. Auf jeden Fall hat das was local
macht nichts damit zu tun, daß Informationen erst zur Laufzeit eintreffen. Vielmehr das Gegenteil, denn local
funktioniert nur mit Informationen die bereits vorhanden sind (Symboltabelle).
local @a = qw(a b c d e);
# Global symbol "@a" requires explicit package name
Gibt also eine Fehlermeldung, s.o., die besagt, daß der Interpreter den Scope von @a gar nicht kennt.
MfG