in reply to CGI versus CGI::* modules
I wrote a little about this here.
IMHO, the entire community would benifit if CGI.pm were left behind. Somehow, I've gotten into the habit of putting a use CGI qw(:standard); at the top of every CGI I write, and I really need to get that changed to CGI::Simple or something else. I hardly ever use anything from CGI.pm besides param() (though I really ought to use header(), too), and it seems wasteful to load up that beast of a module just for one subroutine.
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
Note: All code is untested, unless otherwise stated