Damian Conway <[EMAIL PROTECTED]> writes: > Larry explained: > >> : Umm..... didn't you say bare blocks were going away? >> >> Rule #2 was invoked. >> >> The current thinking is that any bare block will never be interpreted >> as returning a closure. You have to use explicit C<return {}> or C<sub {}> >> to return a closure. > > Or the equivalent of a C<sub {}>, namely: > > $closure = -> {...}; > > or: > > $closure = { $^has_a_placeholder_variable }; > > > Or an explicit closure context: > > sub foo(&closure) {...}; > > foo { this_block_is_a_closure() };
The closure is going to close over all the variables currently in scope isn't it? Not just the immediately containing scope. -- Piers "It is a truth universally acknowledged that a language in possession of a rich syntax must be in need of a rewrite." -- Jane Austen?