If you're wondering how code like:
sub bar {
my $foo;
{
my $foo;
}
}
can possibly have only one scratchpad, that's easy--perl knows the two
$foo slots are different, and makes sure it gets the right one when it goes looking. (When lexicals are accessed they're all accessed by slot number, not by name, so the actual name is pretty irrelevant at runtime)
The only place that this could get interesting is with string eval, but since perl also tracks the lines that a particular lexical is active for, it's not a problem.