Some people, when faced with the problem of setting up options for a complex project, think "I know, I'll use AppConfig". Now they have two problems.
I used AppConfig for one project, in about 2008 or 2009, and have been regretting it ever since, and unfortunately I still have not got around to removing the thing.
It is not that the module does not work, or is not documented. The problem is that this module is far too complicated and does far too many things.
This module's maintainer used to be the same person as the Template Toolkit, so I thought this must be OK, and I delved deeply into all the complexities of AppConfig, thinking this must be the cool way to set up my configuration. What I realised too late is that this thing is just far too complicated and convoluted for normal people to be able to cope with, it has too many ins and outs, it makes too many decisions for you, and I really did not need to use anything this tortuous. Adding this configuration system to my already complex project just made the whole thing into a nightmare.
Since learning the error of my ways, I have never used any other command-line module except for Getopt::Long.