Piers Cawley writes:
: 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.
Certainly. Otherwise we'd never have a feeling of closure.
Larry