Guard-Stats Guard::Stats - Guard object generator with utilisation meters. BASIC USAGE Suppose we have a long-running application making heavy use of closures, and need to monitor the lifetimes of those. So... # in initial section use Guard::Stats; my $stat = Guard::Stats->new; # when running my $guard = $stat->guard; my $callback = sub { $guard->end("taken route 1"); # now do useful stuff }; # ... do whatever I need and call $callback eventually # in diagnostic procedures started via external event my $data = $stat->get_stat; warn "$data->{running} instances still running"; METER TABLE Statistics show numbers of guards for which end()/DESTROY() were called in various combinations. DESTROY: * 0 1 end:* total+ alive dead end:0 ? running broken+ end:1 done+ zombie complete+ A "+" marks values directly measured by Guard::Stats. They all are monotonous. Other counterss are derived from these. TIME AND LEVELS The on_level( [-] $n, CODEFER ) method allows to perform certain actions upon guard count changes. (-$n means "count decreased to $n"). With a helper class provided, also life times of guards can be measured. See perldoc for more. INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Guard::Stats You can also look for information at: RT, CPAN's request tracker (report bugs here) http://rt.cpan.org/NoAuth/Bugs.html?Dist=Guard-Stats AnnoCPAN, Annotated CPAN documentation http://annocpan.org/dist/Guard-Stats CPAN Ratings http://cpanratings.perl.org/d/Guard-Stats Search CPAN http://search.cpan.org/dist/Guard-Stats/ LICENSE AND COPYRIGHT Copyright (C) 2013 Konstantin S. Uvarin This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.