MooseX-App is a highly customisable helper to write user-friendly command
line applications without having to worry about most of the annoying things
usually involved.
Just take any existing Moose class, add a single line (use MooseX-App
qw(PluginA PluginB ...);) and create one class for each command in an
underlying namespace. Options and positional parameters can be defined as
simple Moose accessors.