Closure-Explicit
view release on metacpan or search on metacpan
lib/Closure/Explicit.pm view on Meta::CPAN
You can mix C<weaken> and C<allowed>:
my $x = 1;
my $code = callback {
shift->method(++$x);
} weaken => [qw($self)], allowed => [qw($x)];
=cut
sub callback(&;@) {
if(CLOSURE_CHECKS) {
my $code = shift;
my %spec = (@_ > 1) ? (@_) : (allowed => shift);
# warn "Have " . join ',', keys %spec;
if(my @err = lint( $code => %spec )) {
warn "$_\n" for @err;
die "Had " . @err . " error(s) in closure";
}
return $code
} else {
( run in 0.669 second using v1.01-cache-2.11-cpan-65fba6d93b7 )