in reply to
Ingy's "Swiss Army Light Sabre" - or, "how do you design your APIs?"
Often you want two APIs, a comprehensive and flexible one,
and an idiomatic DWIM wrapper Blah::Simple.
One way to reality check your design decisions is to
compare your API to another API from a different but
Another test (that I need) is to return to your
design after some months.
"What was I thinking?!" is often the result
when you lose the blinkers of your original problem.
I don't like API designs that second guess you,
nor those that strictly follow a non-Perlish design
(usually found in library or system wrappers)