I gave a talk at MadMongers recently about command line apps. The slides are posted now.
[From my blog.]
When I was need complex CLI processing, I ended with some (simple) DSL implementation and following CLI specification: https://github.com/vsespb/mt-aws-glacier/blob/master/lib/App/MtAws/ConfigDefinition.pm (DLS implementation https://github.com/vsespb/mt-aws-glacier/blob/master/lib/App/MtAws/ConfigEngine.pm )
I am still not sure if this ever could be replaced with any existing CPAN CLI module, but this current code works just great for my current tasks.
My little part in the greater Perl world.
When I was need complex CLI processing, I ended with some (simple) DSL implementation and following CLI specification:
https://github.com/vsespb/mt-aws-glacier/blob/master/lib/App/MtAws/ConfigDefinition.pm
(DLS implementation https://github.com/vsespb/mt-aws-glacier/blob/master/lib/App/MtAws/ConfigEngine.pm )
I am still not sure if this ever could be replaced with any existing CPAN CLI module, but this current code works
just great for my current tasks.