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 using the 'option' and 'parameter' keywords respectively.