Enable it, run your program and it will list classes and object counts for live objects (i.e. not garbage collected ones) on exit.
I used it to find a memory leak in Devel::Cover. While it was simple to see wich objects were still alive, this module won't help you find out the root cause, i.e. where the circular dependencies are. But you can always just Dump one of the objects. Given the classes, you can probably figure out what a proper root object would be.
* list ref count of each class or even object, maybe limited per class, so you can see where the leak is.
Strong points of DBI:
* it's the de facto standard in Perl, focusing database development.
* a unified interface for connectivity, basic activities (and somewhat for capabilities), making it almost-not-a-nightmare to switch between database backends (but then there's always the specific syntax, semantics and concepts of different databases for anything non-trivial... *sigh*)
* it's stable and mature with countless hours in production.
* nice API.
* huge amounts of additions and utilities in the DBIx namespace, built on top of DBI. Not to mention Class::DBI.
Excellent module! If you need some kind of "tail -f" in your program, this is what you want. Being able to use non-blocking selects on many files (or in my case, building a tailing server) is extra nice.
The documentation could use a little more work for the methods, which parameters they take, examples etc.
The module appears to work just fine under Win32 despite the failing tests (I suspect DOS/Unix line feed problems).
For when the options on the command line just become too many or too long to keep on the command line. Put them in a file and include them. Recursively if need be. Excellent extension to @ARGV parsing modules.