Course Description

This 3-day Perl CGI Programming training course bridges the gap between using HTML to create static Web pages and using Perl CGI scripts to create dynamic Web pages. The course emphasizes using the Perl 5 CGI library routines to process HTML forms by providing extensive working examples and by students writing applications to illustrate the concepts presented.


This course is not intended to be a substitute for a Perl programming course. Programming experience is required. Familiarity with HTML forms and a basic familiarity with the Perl language via Perl Programming Introduction or equivalent experience.

Who is this Course for ?

For Software Developers, Web Developers, and Web Masters wanting to create/maintain interactive Web pages using Perl with CGI.

Further Training

After some further on-the-job experience in a Perl/CGI web environment, we recommend students attend our
Perl Programming Intermediate course to gain higher-level skills in the usage of the Perl programming language.

Course content

The Internet and the Web
TCP/IP and Ports
DNS vs. Hosts Files
Servers and Clients
Client/Server Protocols
Browsers and Servers
WEB Browsers and Servers
The Hypertext Transfer Protocol
HTTP Requests and Responses
HTTP Headers
HTTP Requests
Mime Types
Introduction to CGI
HTML Tag Structure
HTML Document Structure
URLs and CGI
CGI Programs
Running and Debugging from the Command Line
Running and Debugging from a Browser
Handling an HTML Form with CGI
Generating HTML
CGI and Perl
Perl Programs
Why Use (and Where is It?)
Running and Debugging from the Command Line
Generating HTML with
Running and Debugging from a Browser
Generating HTML
Introduction to
How to use Online Documentation Rules for General HTML Tags Rules for HTML Form Tags
Named vs. Positional Parameters in
Generating Forms
General Structure of HTML Forms
Form Element Tags
Popups and Listboxes
Textfields, Passwords, and Textareas
CGI Data Flow Architecture
URL Encoding and Decoding
Data Flow between Browsers and Servers
Which to Use?
CGI Environment Variables
Accessing CGI’s Environment Variables
Processing Form Data
Static Forms
Dynamic Forms
Controlling Flow with User Input
CGI Programming Using Perl
Accessing Form Data Using
The param Method of
Sticky Widgets
Validating Input from the Browser
Command Line Debugging
Client-Side Statefulness
Stateful vs Stateless
Why use Stateful CGI Applications?
Program to Program Interaction
Stateful Access with Hidden Fields
Multiple Forms and Hidden Fields
Stateful Access with Netscape Cookies
Using Cookies with
Cookie Management
Database Access
Server-Side Statefulness
Flat-File Databases
Structuring Text Data
File Permissions and Flat-File Databases
Perl’s DBM Interface
Perl’s DBI/DBD Interface
Issues with Statefulness
Additional Web Programming Features
Extra Path Information
Server Side Includes (SSI)
The exec command
A Page Hit Counter Using SSI
Animation Description
Netscape’s Server Push
Client Pull
The Module
CGI Security Issues
Browser to Server Security Issues
CGI Security Issues
CGI Interaction with the Operating System
Database / File System Overflow
CGI and User Authentication
Appendix 1 - Overview of Perl
What is Perl?
Running Perl Programs
Sample Program
Another Sample Program
Yet Another Example
Appendix 2 - Perl Variables
Three Types of Variables
Variable Names and Syntax
Variable Naming
Scalar and List Contexts
Hash Functions
Appendix 3 - Flow Control
Simple Statements
Simple Statement Modifiers
Compound Statements
The next, last, and redo Statements
The for Loop
The foreach Loop