CGI.pm is OK With every release of CGI.pm (check yours, and you'll find it is probably several releases behind unless you've kept up with the new and better, smaller, modular, faster releases over the past few months) the CGI module gets updated so that all of the syntax it uses for CGI protocol is up to date, and most correct for backward compatibility. There's nothing wrong with using CGI.pm In version 2.752 (today is 3/30/02) the actual size of the code (that means excluding comments) weighs in at a mere 65 kb. Now the greater part of code in CGI.pm is never compiled and used as part of the CGI objects you create unless you ask for it explicitly or use a method which is not so often required (sub CGI::read_from_cmdline is an example). That code is instead stored within single quoted strings. They are autoloaded only when requested by your own code, and are not otherwise ever seen. When you don't include this extra code in your programming, your CGI object will be generated from a tiny little 14 kb block of Perl code. That's probably smaller than lots of the scripts/programs you write anyway. CGI.pm is not the monster it is often considered, and though it had problems with that issue in the past to whatever extent, it has come a long way since. Of the total size of the CGI module, Randal Schwartz had this to say: "Only when you understand why CGI.pm is the size that it is, can you build upon the art as an improvement. There are a lot of things that have to be done right to handle security; and a lot of others that also have to be done to handle portability. There's a cost to that, and you gotta pay the piper at some point; not cheat and pretend you can get away without it." -- Randal L. Schwartz, Perl hacker