When I first looked at Mo I thought it was a joke. Then I saw the contributors, and the half-dozen or so modules on CPAN that are already using it. Then I gave it a test drive, and I'm really impressed. It does a lot with such a tiny footprint.
I'll be using Moose for my application, but for scripts where a quick startup time is a must (such as dev-ops-ish scripts run by humans, or scripts that are run many times in one go) I'll be turning to Mo in the future.
As long as I'm here I'd like to add a wishlist item: Supporting isa ala Moo with coderefs.
I absolutely love this module. All I need to do is create a perl5::mycompany module and then in all code that "my company" uses all we need to do is:
And all our standards are enforced, boilderplate is removed, and a baseline for good practices is placed. This module is very easy to customize and works great.
Great module, does what it says with flying colors.
If you just want to spawn workers and walk away, this is your ticket. If you want to do anything somewhat custom you'll have to dig a bit to figure out how to do it.
I'm a big fan of this module because it follows the UNIX philosophy of "do one thing and do it well". Massive frameworks are good, but only if they are combining small pieces to make a whole, much like Catalyst does. This module does a very good job of daemonization and I've used it in production environments extensively.
Path::Class has become one of the core tools that I use every day. I really don't do any filesystem stuff now without Path::Class. It simplifies code greatly. In my experience code written with path class is 50% smaller than code written without and, as we all know, less code = less bugs.
The API just makes sense, and the author is very receptive to contributions and discussion. Just the other day I worked with him (on github) to add the spew() method.
I love Dist::Zilla. The fact that I can do `dzil release` and Dist::Zilla does all the work of tagging in git, adding version numbers to the modules, running the tests, and uploading to CPAN makes my like so much easier and removes much of the typical human error that can happen when preparing a release.
This module provides some great features, such as the ability to manage keys within namespaces, etc. Unfortunately, memcached does not support these features in a transactional/atomic manner. If you are not reading between the lines yet: this module introduces race conditions in many of its advanced features. This is a complete show-stopper. Plus it has not been updated in 3 years. Use CHI instead, with the Memcached::libmemcached driver. It is much a much better tool in many respects and is the defacto caching standard now-a-days.