in reply to
How do I prototype a function with a varying number of arguments?
Not complaining about any of the code written here, but date & time solutions are vastly over engineered in the Perl module space, much as configuration file reading/writing are. You might want to look at DateTime, Date::Manip, Date::Calc, Date::Simple, etc. For comments and usage functions, please look at POD and Pod::Usage.
I can't begin to tell you how much time and effort I would have saved by taking a closer look at Config::Simple or perhaps YAML than brewing my own config parser.