NAME Devel::Leak::Cb - Detect leaked callbacks VERSION Version 0.02 SYNOPSIS use Devel::Leak::Cb; AnyEvent->timer( after => 1, cb => cb { ... }); # If $ENV{DEBUG_CB} is true and callback not destroyed till END, the you'll be noticed DESCRIPTION By default, cb { .. } will be rewritten as sub { .. } using Devel::Declare and will give no additional cost at runtime When $ENV{DEBUG_CB} will be set, then all cb {} declarations will be counted, and if some of them will not be destroyed till the END stage, you'll be warned EXPORT Exports a single function: cb {}, which would be rewritten as sub {} when $ENV{DEBUG_CB} is not in effect If "DEBUG_CB" > 1 and Devel::FindRef is installed, then output will include reference tree of leaked callbacks FUNCTIONS cb {} Create anonymous callback my $cb = cb {}; cb name {} Create named callback with static name (Have no effect without $ENV{DEBUG_CB}) my $cb = cb mycallback {}; cb $name {} Create named callback with dynamic name (Have no effect without $ENV{DEBUG_CB}) $name could me only simple scalar identifier, without any special symbols my $cb = cb $name {}; my $cb = cb $full::name {}; cb 'name' {} Create named callback with dynamic name (Have no effect without $ENV{DEBUG_CB}) Currently supported only ' and ". Quote-like operators support will be later my $cb = cb 'name' {}; my $cb = cb "name.$val" {}; AUTHOR Mons Anderson, "" BUGS Please report any bugs or feature requests to "bug-devel-leak-cb at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT You can find documentation for this module with the perldoc command. perldoc Devel::Leak::Cb You can also look for information at: * RT: CPAN's request tracker COPYRIGHT & LICENSE Copyright 2009 Mons Anderson, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.