I suggest you take a look at Damian's excellent and weird Getopt::Declare.
In reply to Re: deriving usage from Getopts::Long by pbeckingham in thread deriving usage from Getopts::Long by Random_Walk