* Documentation (Common Gateway Interface) Documentation http://hoohoo.ncsa.uiuc.edu/cgi/ + Introduction to CGI scripts http://hoohoo.ncsa.uiuc.edu/cgi/intro.html + Primer to CGI scripts http://hoohoo.ncsa.uiuc.edu/cgi/primer.html CGI scripts pass information to the CGI programs via environmental variables. Here are the variables: QUERY_STRING = anything which follows the first ? in the URL. This string is encoded in the standard URL format of changing spaces to +, and encoding special characters with %xx hexadecimal encoding. You will need to decode it in order to use it. PATH_INFO = The most useful example of PATH_INFO is transmitting file locations to the CGI program. To illustrate this, let's say I have a CGI program on my server called /cgi-bin/foobar that can process files residing in the DocumentRoot of the server. I need to be able to tell foobar which file to process. PATH_TRANSLATED = the actual path to the document. ===== The most common error in beginners' CGI programs is not properly formatting the output so the server can understand it. CGI programs can return a myriad of document types. They can send back an image to the client, and HTML document, a plaintext document, or perhaps even an audio clip. They can also return references to other documents. The client must know what kind of document you're sending it so it can present it accordingly. In order for the client to know this, your CGI program must tell the server what type of document it is returning. =========================================================================== * Perl CGI FAQ http://www.perl.com/pub/doc/FAQs/cgi/perl-cgi-faq.html Q2.4: What CGI modules are available for Perl 5? Which should I use, and why? CGI.* = These modules allow you to create and decode forms, debug your CGI programs and maintain state between forms. =========================================================================== * Easy Intro to Using Perl Objects http://perl.com/perl/everything_to_know/easy_objects.html =========================================================================== * Perl documentation + Perl 5 Module List http://www.perl.com/CPAN/modules/00modlist.long.html http://www.perl.com/CPAN/modules/index.html + Documentation for supporting functions http://www.cpan.org/doc/manual/html/pod/index.html perl, perlLoL, perlXStut, perlapio, perlbook, perlbot, perlcall, perldata, perldebug, perldelta, perldelta, perldiag, perldsc, perlembed, perlfaq, perlform, perlfunc, perlguts, perlhist, perlipc, perllocale, perlmod, perlmodinstall, perlmodlib, perlobj, perlop, perlpod, perlport, perlre, perlref, perlrun, perlsec, perlstyle, perlsub, perlsyn, perltie, perltoc, perltoot, perltrap, perlvar, perlxs, + Documentation for libraries, modules, and pragmas: http://www.cpan.org/doc/manual/html/lib/index.html many items listed here. + Documentation for utilities: http://www.cpan.org/doc/manual/html/utils/index.html c2ph, pstruct, diagnostics, h2ph, h2xs, perlbug, perlcc, perldoc, pl2pm, pod2html, pod2man, xsubpp, + Documentation for translators: http://www.cpan.org/doc/manual/html/x2p/index.html a2p, s2p + CPAN FAQ http://www.perl.com/CPAN/misc/cpan-faq.html