Devel::Leak is a utility for looking for perl objects that are not reclaimed.
... setup code
my $count = Devel::Leak::NoteSV($handle);
... code that may leak
Devel::Leak has two functions NoteSV and CheckSV.
NoteSV walks the perl internal table of allocated SVs (scalar values) - (which actually contains arrays and hashes too), and records their addresses in a table. It returns a count of these "things", and stores a pointer to the table (which is obtained from the heap using malloc()) in its argument.
CheckSV is passed argument which holds a pointer to a table created by NoteSV. It re-walks the perl-internals and calls sv_dump() for any "things" which did not exist when NoteSV was called. It returns a count of the number of "things" now allocated.