The appearance of the second edition of CGI Programming with Perl heralds the beginning of the neoclassical era of Web service. CGI--or common gateway interface--is the original back end for client-driven, dynamic Web-page service and deserves consideration as the Romulus of the Internet Empire. But, where first-edition author Gundavaram described the lonely Romulus laying the brick foundation of dynamic Web-page service in 1996, second-edition collaborators Guelich and Birznieks have pitched in to resurrect Romulus amid the crowded streets of modern Rome. Why bother? Surely four years have brought technological revolutions (Java, PHP, ASP, ColdFusion) that render CGI's original brick-by-brick approach as obsolete as, say, Roman mythology--or bricks and mortar.
And yet not. It is an ambiguous blessing that the original CGI persists, adhering to the underside of Web service by the duct tape that is Perl. This point is not missed by Guelich, Gundavaram, and Birznieks, whose advocacy of CGI is both bolstered by the growing applications module base of Perl and tempered by their awareness of CGI's structural limitations. Both new and returning readers of CGI Programming with Perl should browse the last chapter first in order to appreciate the proposed solutions to CGI's greatest sin: its impractical slowness in a world of a million-hits-per-day Web service. The chapter describes CGI-compatible FastCGI and mod_perl technologies that circumvent the process-spawning slowness of the simple CGI. Advanced users might want to skip directly to O'Reilly's fine mod_perl tome, Writing Apache Modules with Perl and C, by Lincoln Stein and Doug MacEachern.
Whether or not neoclassical CGI is fast enough for your purposes--perhaps for guarded intranets--bear in mind that CGI is the standard to which every other Web server has had to respond. The second edition of CGI Programming with Perl is still the best introduction to the classics. --Peter Leopold