Python searches through three and a bit levels of scope, while perl lexicals are telescopic. In python there is the local scope, the module scope, and builtin scope.
my $map;
sub b {
my $map;
while (1){
my $map;
if (1){
my $map;
# four different $map's
}
}
}
|
#builtin map is a function
map = 1 #module or global level
def func:
map = 2 #local to this function
if 1:
map = 3 #still function level
def func2:
x = map # no map in this scope
# falls through
def func3:
global map
map = 2 #changing global map.
Python scopes are implemented as python dictionaries and can be accessed via obj.__dict__. |