I've researched all of the option processing modules I could find which advertised features to support my needs. This module most closely matches my needs. It handles CLI, ENV, config files, and programmed defaults and does it with ease, grace, and common sense.
Options do not need to be defined with this module which may be contrary to some developer's good design in a `use strict' fashion, but for those that want flexibility in their options without having to be detailed in their declaration, this is a very useful feature.
The code is very well designed and written. The documentation is fantastic. It's extremely easy to get started with this module. It's designed so well that it starts working with just `use App::Options;` and it's so well documented that it doesn't take much to figure out how to improve its handling from there.
Use this module for all your option processing needs. It even aids in a developer-tester-production workflow environment.