<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>Book Review: Official Guide to Programming with CGI.pm</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Official Guide to Programming with CGI.pm</FONT>
<BR><FONT SIZE=2>Author: Lincoln Stein</FONT>
<BR><FONT SIZE=2>Publisher: Wiley</FONT>
<BR><FONT SIZE=2>Published: 1998</FONT>
<BR><FONT SIZE=2>ISBN: 0471247448</FONT>
</P>

<P><FONT SIZE=2>The Offical Guide to Programming with CGI is an introductory level text covering Lincoln Stein's CGI.pm module. CGI.pm is the standard perl module for working with CGI. CGI (Common Gateway Interface) is the standard interface by which external programs can interace with web servers. The text assumes the reader has at least a beginner's knowledge of Perl and HTML. For instance, readers are assumed to know how to use modules, but no prior knowledge of object oriented perl is required. Likewise, the reader should have a passing familiarity with HTML tags, forms in particular. This book is particularly beginner friendly.</FONT></P>

<P><FONT SIZE=2>The reader should be able to walk away from the book with the ability to create simple websites which take and respond to user input. The potential CGI.pm programmer will gain a fundamental knowledge of the module, its interface, and how it may be used to generate HTML. The text also includes a very detailed reference guide which may appeal to those people who prefer to hold what they're reading.</FONT></P>

<P><FONT SIZE=2>While the book was published back in 1998, it hasn't become outdated. It is pleasantly surprising that CGI.pm's interface has changed so little. Support for new standards like XHTML have been added since the book was originally published, but have had little net effect on the use of CGI.pm itself.</FONT></P>

<P><FONT SIZE=2>Why CGI?&nbsp; Isn't that the way people used to write dynamic web pages? Yes. And where portability concerns outweigh performance, it still is. Also, if you're a relative novice or don't have an endless supply of round tuits, CGI programming may present the lowest barrier of entry into dynamic web programming.</FONT></P>

<P><FONT SIZE=2>Even if you later move on to one of the newer templating systems a fundamental knowledge of CGI.pm and how it works will still be useful. Not to mention that some of the templating systems for instance HTML::Mason will run on top of CGI, even though most are primarily designed to work with Apache and mod_perl. For those who would appreciate a short description of what mod_perl is, it basically puts a copy of Perl inside the Apache executable making powerful hooks available to perl scripts and avoiding the overhead of executing a separate process for each CGI script.</FONT></P>

<P><FONT SIZE=2>The author of the book, Lincoln Stein, is also the author of the module itself. In the book, Stein takes the reader through a gradual progression of scenarios and solutions. The explanations are thorough and the pace gradually takes the reader into more advanced topics. In short, it is a concise introduction to CGI programming with Perl.</FONT></P>

<P><FONT SIZE=2>Low level details, like how CGI works under the hood and more advanced topics like security, cascading style sheets, javascript, and persistence are touched upon but not covered in particular depth. The author does however provide many timely references to books and websites where the reader can find more information on those topics.</FONT></P>

<P><FONT SIZE=2>--</FONT>
<BR><FONT SIZE=2>Garrett Goebel</FONT>
<BR><FONT SIZE=2>IS Development Specialist</FONT>
</P>

<P><FONT SIZE=2>ScriptPro&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Direct: 913.403.5261</FONT>
<BR><FONT SIZE=2>5828 Reeds Road&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Main:&nbsp;&nbsp; 913.384.1008</FONT>
<BR><FONT SIZE=2>Mission, KS 66202&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fax:&nbsp;&nbsp;&nbsp; 913.384.2180</FONT>
<BR><FONT SIZE=2>www.scriptpro.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; garrett at scriptpro dot com</FONT>
</P>

</BODY>
</HTML>