Yada, yada, yada. You're parrotting the Perlmonks dogmata (strict, warnings, tests, etc), but none of this would have actually helped the case the OP describes. Neither strict nor warnings tell you a DESTROY function is placed in the wrong class. And while tests can tell you something is wrong, figuring out that something was wrong wasn't the OPs problem.
Not writing code is a good point though. A necessary requirement for bugs is code. Without code, there cannot be bugs (at least, not the bugs we're discussing). However, using other peoples modules means you got to write code. Furthermore, the fact code exists on CPAN doesn't mean there are no bugs. All it says is that the author of the code has figured out how PAUSE works.