My only complaint about MooseX::ABC is that when using with other modules it's load order is very sensitive (it has to be last) and this isn't clearly documented. It's useful to use in the place of Roles when Roles won't work. if you apply a role that has an attribute you can't override it in the class that uses the attribute, but if you are extending a base class you can override it, because overriding attributes only works through inheritance. It also allows you to use requires in a base class so that you can require subclasses to implement behavior.
I really like this module, since with most of perl it's really easy to write things in a really readable format. However, lack of syntax for true/false is kind of annoying. So whenever I want to define something as true or false I use boolean.
Just what I needed to define where the output should go. This way I can keep the output in my git repository.