CGI and Perl

What This Tutorial Will Provide

Since this tutorial will provide a large number of examples which use Perl5, we'll devote a full chapter to a tutorial and review of the overall process of implementing and using Perl5. Again, we will still assume that you're already familiar with the basics of Perl programming. As of the writing of this introduction, the brand new revision of Programming Perl, the comprehensive reference for Perl programmers, is available. There are other good online tutorials, and other resources for those just starting out with Perl.

From what I can tell, however, there are a great number of people out there who see Perl5 only as a means to an end. I can understand this position. Not everyone can be a "Perl junkie" like me, and presumably, not everyone would want to, either. Although I can't imagine why not. :-) Regardless, we aim to teach as much of the Perl5 programming skills as are necessary to implement, use, and customize the latest and coolest tools, tricks, and techniques which are described herein.

We'll also give serious consideration to the all-important security issues (one can never stress this enough, and it will also comprise a full chapter) related to providing a Web service. These issues have, of course, been considered in many previous texts. In fact, any work which did not give consideration to these issues would be lacking at best, and dangerous at worst. Most of the examples and discussion in the security chapter will be implemented with Perl. On the other hand, we won't spend a lot of time discussing other important aspects of security which have little or nothing to do with Perl, like SSL (Secure Socket Layer) and what the little key at the bottom of the Netscape browser means, for instance.

Once we're through with the Perl5 tutorial and security review, we'll move right into the meat of the matter, and presumably, the examples. We'll try to cover each technique with an eye towards the underlying idea, or algorithm, behind it. What does it add to your Web, and the WWW in general, that wasn't there before? How does it differ from the existing implementations, both in Perl4, or in other languages? And what are the costs, if any, which you must absorb, to implement it? Why did the implementor(s) of the tool or module feel that it was important enough to spend their time in developing it?

We'll spend time covering CGI programming, of course. We'll also devote a full section to the discussion of Archivists' issues in general, and especially as they relate to maintaining a full multi-media archive which is dynamic and subject to revisions, changes, and enhancements.

Finally, we'll close with coverage of some of what we feel to be the most exciting, but also the least well developed and implemented, techniques and proposals for using Perl with the Web. Many of you will be familiar with Java, of course, but how many are aware that there is also a Perl5 interpreter available as a Netscape plugin? This is, of course, strictly a proof-of-concept implementation at this point, but it's exciting to think of the power and flexibility of having a Perl-code-aware browser. Also discussed in these final chapters will be some of the more interesting proposals for new features in the HTML/CGI language itself, which involve the implementation of embedded functionality, and abstract it to a certain degree, to include just about anything, including embedded Perl scripts.