Devel-Leak-Cb
view release on metacpan or search on metacpan
lib/Devel/Leak/Cb.pm view on Meta::CPAN
my $cb = cb 'name' {};
my $cb = cb "name.$val" {};
=head2 COUNT
You may call C<Devel::Leak::Cb::COUNT()> Manually to check state. All leaked callbacks will be warned. Noop without C<$ENV{DEBUG_CB}>
=cut
use Devel::Declare ();
use Scalar::Util 'weaken';
our @CARP_NOT = qw(Devel::Declare);
our %DEF;
BEGIN {
if ($ENV{DEBUG_CB}) {
my $debug = $ENV{DEBUG_CB};
*DEBUG = sub () { $debug };
} else {
*DEBUG = sub () { 0 };
lib/Devel/Leak/Cb.pm view on Meta::CPAN
our $LASTNAME;
sub remebmer($) {
$LASTNAME = $_[0];
return 1;
}
sub wrapper (&) {
$DEF{int $_[0]} = [ $_[0], (caller)[0..2], $LASTNAME ];
weaken($DEF{int $_[0]}[0]);
subname($DEF{int $_[0]}[1].'::cb.'.$LASTNAME => $_[0]) if $LASTNAME;
$LASTNAME = undef;
return bless $_[0],'__cb__';
}
sub parse {
my $offset = $_[1];
$offset += Devel::Declare::toke_move_past_token($offset);
$offset += Devel::Declare::toke_skipspace($offset);
my $name = 'undef';
( run in 0.243 second using v1.01-cache-2.11-cpan-65fba6d93b7 )