In alphabetical order, modules that make my life easier or just plain make me happy.
- Exception::Class
- Simple interface that allows you to quickly put an exception hierarchy together and to easily add attributes and behavior to the classes as necessary.
- IO::Wrap
- Because it means you can accept any handle-like thing. Makes for nice interfaces.
- Module::Build
- Easily customizable. I prefer this so much over the alternatives that I no longer include
Makefile.PL
files in new code.
- Module::CoreList
- Ah, the fun manipulations you can do when you combine it with
PPI
. Invaluble when maintaining a non-public CPAN repository.
- Perl6::Say
- For all that code that can't use 5.10 features yet. No more explicit newlines or unnecessary double-quotes.
- Pod::POM::Web
- Live, linked, syntax-highlighted, AnnoCPAN integrated, pleasant-to-read, full-text searchable, HTML perldoc? Oh, yes.
- PPI
- Making your code malliable for over 6 years. I've always considered code "slushy"; this helps keep it that way.
- Readonly
- Constants that work properly. You definitely want to be using Readonly::XS with this.
Similarly, here are tools I really like.
- ack
- A better grep than grep. A better find than find. I can't work without it any more; thankfully, I don't have to.
- annopod
- A better perldoc than perldoc. (In fact, I've got "perldoc" aliased to annopod.) AnnoCPAN comment integration plus no need to use
-F
any more.
- pmtools
- I use
pmpath
, pmvers
, and pminst
on a daily basis. When your codebase lives in 50+ distributions and you have all the prerequisite third-party modules in a local CPAN repostitory to deal with as well, these are invaluble.
- svnnotify
- If only the standard Subversion email used this. (Or at least put the log message before the file list.)