in reply to Z-Rated Code and Reinventing the Wheel
Not to nitpick too much, but I clicked on your CGI::Simple link because I wasn't sure which of the two modes (function vs object) it would deign to not support, as I suspect that the large majority of CGI users are fairly evenly split, and failing to support one mode would prevent half the potential "market" from being interested.
So, I found that CGI::Simple claims to support both. Which is goodness. Not that I have any desire for using the functional interface, finding it much more invasive than the object interface (I like keeping my namespaces as clean as possible, but no cleaner). But it's nice that it's supported for those who baffle me by liking the other way ;-)
I don't think, however, that this negates your point - some reinvention is a good idea when that new invention is still new in some way. Otherwise, we'd all still have stone wheels for tires. Or we'd still have processor speeds measured in KHz, nevermind GHz. Think of it more of a "discovery" of a different way to solve the same problem, with its own pros and cons.