in reply to Several stupid questions about subs

I understand local went out with the goto statement. True?
Certainly false. Just yesterday I wrote:
local $Opt{debug} = 1; some_function();

It is in just such sitations that local shines. Here’s another:

local $SIG{INT} = "IGNORE";

And another:

@paragraphs = do { local $/ = q(); <FH> };
Despite the general usefulness of compile-time scoping, there are still times when you want run-time scoping. For example, exception blocks are run-time scoped.