sub a {
sub x { print "I came from a\n"; }
}
sub b {
sub x { print "I came from b\n"; }
}
x();
a(); x();
b(); x();
####
I came from b
I came from b
I came from b
####
sub a {
local(*x) = sub { "from a" };
doit();
}
sub b {
local(*x) = sub { "from b" };
doit();
}
sub doit {
print "I came ", x(), "\n";
}