The module might as well be CGI::ParseForms and skip all the HTML building routines, for the ways it seems to be used in the wild. And frankly, given how much trouble I have with fonts that get too small, or pages that are completely unreadable in text-only mode (yes, I like to browse in Lynx sometimes just to get away from all the image rendering issues and time wasted waiting for them download over the modem), I'd like to see us make stronger, more frequent recommendations to use CGI for building HTML and then to remember that using it is no guarantee of perfect HTML either.
There's one very nice thing about CGI.pm that hasn't been yet pointed out:
if you had been generating valid HTML all along using the shortcuts
(as opposed to "print"-ing your own), then in the most recent releases
of CGI.pm, you are now generating valid XHTML! Yes yes yes! Thank you Lincoln!
-- Randal L. Schwartz, Perl hacker