Perl for Web Development

A comprehensive course on using Perl to develop web sites

Synopsis

A specialist course designed to enable web developers to build dynamic (database-driven) e-commerce web sites using the Perl programming language, its specialist web modules and CGI (the common gateway interface).

The course includes a thorough grounding in generic Perl programming before moving on to specialised web development tools and techniques.

Course Contents

Preparing to Learn Perl

  • Things you need to know and do in order to run Perl and learn Perl programming
  • A module designed for complete beginners
  • The perl compiler/interpreter
  • Perl under Unix/Linux
  • Perl under MS Windows 2000/NT/95/98/ME (perl.exe)
  • ActiveState Perl
  • Making programs executable
  • Perl from the command line (% perl)
  • Specify the Perl compiler/interpreter (#!)
  • Using plain text
  • Writing a very simple program
  • Running a very simple program
  • Basic syntax

Perl: The Absolute Minimum

  • Enough of the language to get started
  • The print command
  • Variables
  • Scalars - numbers and 'strings'
  • Assignment
  • Simple conditional tests - if "strings" "\n"
  • Lists
  • Arrays - for storing lists
  • foreach
  • Hashes
  • Other loops: while, for, do, until
  • Arrays - the rest
  • Simple input, e.g. while(<>)
  • Functions overview - recognising, writing, using
  • Regular expressions - perlre
  • Simple file handling - open, print
  • Subroutines - parameters in and out, listification, local variables
  • Help - perldoc, books, web

Perl: Beyond the Basics

  • More flow control
  • Statement modifiers
  • Quoting mechanisms - qq(), etc
  • Here documents
  • Uppercase/lowercase conversion
  • Splitting strings into lists
  • Joining lists into strings
  • Filtering lists with map
  • Sorting lists
  • The importance of context
  • Assignment shortcuts
  • Scoping rules
  • Special variables

Complex Data Structures & References

  • Limits of flat lists
  • Nesting arrays
  • Array references
  • Anonymous arrays
  • Named array references
  • Passing multiple arrays to/from functions
  • Hashes of arrays
  • Hash references
  • Arrays of hashes
  • Hashes of hashes
  • Complex nested data structures
  • Code references
  • Dispatch tables

Finding Out More For Yourself

  • How to read Perl's documentation
  • Where to find more information
  • Knowing what's out there to look for
  • FAQs

The Perl Debugger & Debugging Perl

  • Avoiding bugs
  • Perl's built-in debugger
  • Invoking the debugger
  • What you can do with the debugger
  • Understanding the debugger's command line interface
  • Knowing the debugger's basic command set
  • Exploring some extended functions
  • Graphical debuggers
  • Alternative debugging techniques

Using Perl Modules from CPAN

  • The Comprehensive Perl Archive Network (CPAN)
  • Why effective Perl programmers are efficient CPAN users
  • CPAN's philosophy
  • Finding modules
  • Installing Modules
  • Using modules
  • Some particularly useful modules

Command-Line Perl

  • General principles
  • Using Perl as a filter
  • Awk-like Perl
  • Many real world examples
  • Many examples using regular expressions
  • Command line flags

A Whistle-Stop Tour of the World of Perl

  • Wheels you don't need to re-invent
  • Common recipes
  • Common pitfalls

Advanced File Processing with Perl

  • Types of open
  • Filehandles
  • Reading line by line
  • Reading paragraph by paragraph
  • Reading entire files
  • Special variables
  • The flip-flop operator (..)
  • File test functions
  • Pipes

Perl Security Issues

  • Potential security pitfalls
  • Coding for security
  • Taint checking
  • Dangerous environment variables
  • File input
  • Set-user-id Perl programs
  • Permissions and users

Handling Databases with Perl

  • Interacting with SQL databases from Perl
  • Using DBI
  • Using ODBC
  • Connection/disconnection, log in/log out
  • Doing simple queries
  • Doing complex queries, e.g. hash and array references
  • Linking with HTML:Template
  • Monitoring database servers
  • Database related modules

Introduction to CGI Programming With Perl

  • Printing a CGI header for a simple command-line program
  • Running the simple program as a CGI script
  • Form handling - CGI::Lite.pm for parameter parsing
  • GET
  • POST
  • Debugging CGI programs
  • Running CGI programs at the command line

More Advanced CGI Techniques

  • Hidden fields
  • Maintaining state
  • Cookies
  • CGI & HTTP headers
  • Redirection to other pages
  • File uploading

Web Security Issues

  • CGI scripts and security
  • User input on the web
  • Guest books
  • Dangerous strings
  • Unsafe process calls
  • File upload exploits
  • Safe database access
  • Permissions for CGI programs