These are the modules that I reach for first when trying to solve a problem:
- Scalar::Util
- Scalar::MoreUtils
- List::Util
- List::MoreUtils (This is just a phenomenal module)
- File::Slurp
- DBIx::Class
- Catalyst and, possibly, CGI::Application
- DBM::Deep
- Test::Deep, Test::Warn, Test::Exception, DBD::Mock (numerous others in this category)
- Set::*
- Algorithm::*
- Tree
- Template Toolkit, Excel::Template, PDF::Template, CAM::PDF, Test::PDF
- Moose
And this is just what I can think of in 10 minutes. Some of them are written/maintained by me and most have been contributed to by me or people I know. In addition to this list is a knowledge of how to navigate CPAN and whom to ask when I want to solve something.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?