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


in reply to Re: Re^4: Tact and the Monastery
in thread Tact and the Monastery

I --ed you in turn.
my $closure; { my $variable; $closure = sub { $variable = shift }; }

The inner block is now a closure. The $variable will NOT disappear at the end of the scope wherein it was defined. The outer naked block is just a naked block. A closure can only be dynamically constructed and is a block that preserves a variable beyond the scope it was defined in.

Your own example shows just a naked block. You have perfectly explained its virtues which I was already aware (and an advocate) of, and which I did not challenge in the first place. But there is no closure in your code. Please check your definitions.

Makeshifts last the longest.