Contents:
Introduction
Modules
CGI and the WWW Server
Specific Programming Questions
Security
There are times when you might want to have some dynamic information (information that is not constant) in your HTML documents. This could include simple information such as the date and time, or a counter that displays "You are visitor number xxx", but it could also include such things as pie charts/graphs based on user input, results from searching a database, or animations. And the only way you can produce results like these is with CGI scripts (though you can also do so with client-side applications like Java and JavaScript, but that's a totally different story!).
Here is an excellent description that my editor, Andy Oram, wrote up:
Assures you that CGI can be used by many languages and interact with many different types of systems. It doesn't tie you down to one way of doing what you want.
Suggests that CGI's strength lies not in what it does by itself, but in the potential access it offers to other systems such as databases and graphic generators.
Means that CGI provides a well-defined way to call up its features-in other words, that you can write programs that use it.
Simply put, a script is a program! OK, OK, there are semantic differences between the two words. If you really want to know, pick up a book on computer programming (or is that computer scripting :-)
You can create a lot of magic by writing a CGI program/script. You can create graphics on the fly, access databases and return results, and connect to other Internet information servers.
The answer is located in the first three lines of the Perl manpage:
Perl is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information.
Most CGI applications involve manipulating data in some fashion and accessing external programs and applications. Perl provides easy-to-use tools that make these tasks a cinch.
Here is a list of books on CGI and Perl. I got this list from Cye H. Waldman:
Here is a table of books and CD-ROMS about CGI and Perl:
Author |
Title |
Publisher |
Medium |
Price |
---|---|---|---|---|
Christian Neuss & Johan Vromans |
The Webmaster's Handbook: Perl Powerfor Your Web Server |
Int'l Thomson |
CD-ROM |
$30 |
William E. Weinman |
The CGI Book |
New Riders |
CD-ROM |
$45 |
Garbus et al. |
Perl Programming Unleashed (AvailableMarch 1996) |
Sams.net |
CD-ROM |
?? |
Steven E. Brenner & Edwin Aoki |
Introduction to CGI & Perl: Web Scripts |
MIS:Press/M&T Books |
|
?? |
Ed Tittel et al. |
Perl 5 Programming Secrets(Available March 1996) |
IDG Books |
CD-ROM |
?? |
Mitzelfelt |
Special Edition Using Perl |
Que |
|
?? |
Shishir Gundavaram |
CGI Programming on the World Wide Web |
O'Reilly |
|
$30 |
Rob Farrel |
The Official 60 Minute Guide to CGI Programmingwith Perl (http://db.www.idgbooks.com/database/book/isbn/generic-book.tmpl?query=1-56884-780-7) |
IDG Books |
|
$20 |
Ed Tittel et al. |
Web Programming Secrets |
IDG Books |
CD-ROM |
$40 |
John Deep |
Developing CGI Applications with Perl (AvailableDec 1995) |
Wiley |
|
$30 |
Jon Orwant |
Perl 5 Interactive (Available February 1996) |
Waite |
|
$30 |
Reggie David |
Perl 5 How-To (Available Spring 1996) |
Waite |
CD-ROM |
$40 |
Eric Herrmann |
Teach Yourself CGI Programming with Perlin a Week |
Sams.net |
|
$30 |
Walnut Creek CDROM |
Perl (Collected resources, archives, tutorial, examples, source code, etc.) |
Walnut Creek CDROM |
CD-ROM |
$40 |
Carl Dichter & Mark Pease |
Software Engineering with Perl (This is an advanced text for software professionals; it is not a tutorial.) |
Prentice Hall |
Disk |
$30 |
Ellie Quigley |
Perl by Example |
Prentice Hall |
|
$27 |
John December & Mark Ginsburg |
HTML & CGI Unleashed |
Sams.net |
CD-ROM |
$50 |
David Till |
Teach Yourself Perl in 21 Days |
Sams |
|
$30 |
Larry Wall & Randal L. Schwartz |
Programming Perl |
O'Reilly |
|
$30 |
Randal L. Schwartz |
Learning Perl |
O'Reilly |
|
$25 |
Ed Tittel et al. |
Foundations of WWW Programming with HTML and CGI |
IDG Books |
CD-ROM |
$40 |
Eric Lease Morgan |
Teaching a New Dog Old Tricks (Mac-based WWW Starter Kit with Server) (http://152.1.24.177/teaching/manuscript/0010-title-page.html) |
|
Online |
Free! |
Susan B. Peck & Stephen Arrants |
WebSite: Everything You Need... (This is a complete Website kit for Windows NT 3.5 or Windows 95) |
O'Reilly |
CD-ROM |
$249 |
Lincoln D. Stein |
How to Set Up and Maintain a World Wide Web Site |
Addison-Wesley |
|
$29 |
Jonathan Magid et al. |
The Web Server Book |
Ventana |
CD-ROM |
$50 |
net.Genesis & Devra Hall |
Build a Web Site |
Prima |
|
$35 |
David Chandler |
Running a Perfect Web Site |
Que |
CD-ROM |
$40 |
Jon Weiderspan & Chuck Shotton |
Planning & Managing a Web Site on the Macintosh |
Addison-Wesley |
CD-ROM |
$40 |
There is a very useful newsgroup: comp.infosystems.www.authoring.cgi, that is "monitored" by numerous CGI experts. However, you should not post a question to this group (or any other group, for that matter), until you have read the FAQ.
Various mailing lists for CGI and the Web exist, as well. Here are two of the most popular:
cgi-perl-request@webstorm.com [http://www.webstorm.com/local/cgi-perl]
This list is for those who are writing or interested in writing Perl 5 modules for CGI. It is not intended for any type of CGI support.
Tim Bunce (Tim.Bunce@ig.co.uk) wrote several elegant and useful CGI modules, although they are currently maintained by Lincoln Stein (lstein@genome.wi.mit.edu). These modules are located at:
http://www-genome.wi.mit.edu/WWW/tools/scripting/CGIperl
Lincoln has also written an excellent book on the Web and CGI (see the preceding table).
libwww-perlrequest@ics.uci.edu [http://www.ics.uci.edu/WebSoft/libwww-perl/archive]
libwww-perl is a Perl library that provides a simple and consistent programming interface to the Web.
You can access the Perl 4 distribution at:
http://www.ics.uci.edu/pub/websoft/libwww-perl
The Perl 5 libwww modules are located at:
http://www.os/oslonett.no/home/aas/perl/www
Are there archives on the net of mailings or postings about this?
Yes, look at:
The Usenet Newstand (http://CriticalMass.com/Concord/)
All of the comp.infosystems.www.* newsgroups are archived. In addition, the cgi-perl and libwww mailing lists are archived as well.