People at many different levels of computer expertise come
to CGI to solve their problems. CGI involves programming, so I expect
you to be comfortable thinking like a programmer. I don't expect
you to know any particular language, but you must promise that when
I show you a loop, you won't be thrown for a loop. I want this book
to be chock full of unique CGI techniques that you won't find elsewhere,
and therefore I don't want to take up space telling you things that
you can find in many other books.
The language of choice for CGI programming is Perl, at least
on UNIX systems. I also talk a little about several
other languages, notably Tcl. But most examples are in Perl. Still,
I don't expect to force you into being a Perl programmer. I try
to describe everything I do carefully in plain English, so you can
implement the same techniques in the language of your choice. Remember,
the main thing to learn is the concept; the way you implement it
is up to you.
If you do come to the same conclusion that thousands of CGI
programmers have reached-that Perl is the easiest language in which
to do the text and array manipulation that characterizes CGI tasks-then
you can use my examples as a basis for your own Perl programs, and
supplement the book with either the extensive manual pages or the
books on Perl from O'Reilly & Associates: Learning
Perl by Randal Schwartz as a beginning tutorial and Programming
Perl by Larry Wall and Randal Schwartz for advanced techniques.
Perl is available on many non-UNIX systems, by
the way.
I should admit up front that there's a UNIX
bias in this book, because UNIX is the most popular
system for Web servers. Some of the things I do all the time on
UNIX-such as pipe output to another program-have
to be done differently on other systems. And similarly, some of
the security concerns that go along with executing UNIX
commands won't exist on other systems. But I repeat: The basic CGI
tasks are the same in any language, on any system. They spring from
the division of labor between client and server, and the protocols
they use to communicate.