The key is the number of moving parts that you are responsible for. If the moving part is from CPAN, then you just care that it works. More importantly, you're not thinking on the order of the problem, but the solution.
Another way to think about it is this - Perl itself is a CPAN module. Otherwise, you'd be using C. C doesn't have memory management, but Perl does. C doesn't have scalars, but Perl does. C doesn't have a lot of what Perl does, which is why I use Perl - it makes my life easier. So, that's why I use CPAN modules. As many as I can possibly lay my little grubby hands on. I have my own "core" list that I install whenever I can so that all the tools I want to have are there.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?