Statický rámec
From perl6.cz
Statický rámec nebo také lexikální rámec (lexical scope v angličtině) je kontext ve kterém hodnoty a výrazy asociovány staticky. V Perlu jsou statické (lexical) proměnné deklarovány pomocí klíčového slova my.
Příklad statického rámce (lexical scope) proměnné.
$x = 0; sub f { return $x; } sub g { my $x = 1; return f(); } print g()."\n";
Příklad ukazuje použití "my" pro definování proměnné $x ve funkci g staticky. Zavolání funkce g ve výše uvedeném kódu vrací 0, protože funkce f nemůže vidět staticky definovanou proměnnou $x z funkce f a proto použije globální proměnnou $x.
$x = 0; sub f { return $x; } sub g { local $x = 1; return f(); } print g()."\n";
Ve druhém příkladě je ve funkci g použito klíčové slovo local pro definovování proměnné $x dynamicky. Nyní po zavolání funkce g dostaneme 1, protože funkce f vidí lokální proměnnou $x funkce g na jejímž vrcholu běhového zásobníku je hodnota 1.