CGI and Perl

What This Tutorial Is and Is Not

Most of the relevant subjects, examples, and code will be assumed to be implemented on a UNIX system. There's just not enough time, or cross-platform capability, to deal with issues specific to other architectures in depth.

What This Tutorial Is Not

This isn't a tutorial for "clueless newbies." We are going to assume that you are familiar with the fundamentals of Web programming, and the protocols, syntax, and conventions which comprise all of HTML/CGI, and HTTP in their latest version. There are a plethora of texts available which document this stuff, and if you're like me, you've probably bought several texts from various publishers, and read FAQs and Web-based tutorials until your eyes rolled back in your head. If not, then we will provide you with a fairly complete set of references to which you can refer to find other references, texts, and information which will refresh your memory or help you obtain the level of knowledge you will need about the above topics to fully understand the examples.

A basic understanding of Perl programming, at least with respect to datatypes, subroutines, operators, and syntax will also be assumed. Again, we'll provide suggestions for other documents and texts which will bring you up to speed on Perl programming in general, if you've not been exposed to it before, or if you need a refresher course.

We also would like for you to actually understand how the examples really work, and how you can modify them to suit your needs, when you're done reading this tutorial. Thus, our aim is to avoid canned scripts, or examples which are specific to some particular need. We'll try to provide explanations, along with the examples, in a verbose form throughout the text, and we'll try to make the examples generic enough to fit your needs, but with some modifications.

Finally, this tutorial is not just about Perl. Our aim is to provide a comprehensive overview of most or all of the tasks which face the typical Webmaster, or Web Team. The emphasis, where appropriate, will be on implementation of any specific task with Perl, but we'll also explore certain tasks and aspects of managing a Web site which have very little, or nothing to do with Perl. In order to make this tutorial as complete a reference as possible, and cover important topics like security, configuration management, server configuration, and certain other tools and processes, we'll have to provide information which may have little or nothing to do with Perl. When this is necessary, we'll try to note it in the text, and get back to Perl as soon as we can.