http://www.perlmonks.org?node_id=809196


in reply to Re^2: closure clarity, please
in thread closure clarity, please

You have no choice. Named subroutines are always global. You're lying to yourself when you said "local f".

You are right. I meant "define all subroutines at the same global level."

Why do you think that creating a variable somewhere should replace a variable in some unrelated sub?

It is not clear to me when a lexical variable is used and when is lost during the program execution, as in my last example, where I'd expect an uninitialized $a in all "local f"'s messages.