I'd call the outer block a scoping bare block. A "bare block" is the "correct" (in as much as the Camel uses it -- Camel2 pg103) term for a block that isn't part of a looping statement (it's "semanticly equivlent to a loop that executes once"). The "scoping" part just lets us know what it's for -- scoping, not a roll-your-own loop with redo, last, or next. The subs within the block are closures.
BTW, I'd use the block around the subs, even if you don't yet have a $foo outside. If you can clearly see a good line of interface, use it.
Confession: It does an Immortal Body good.