Skip to page content Skip to section menu Skip to site-wide navigation About Us | Consultancy | Training | Software | Publications | Open Source | Support | Open Standards | FAQ | Jobs
Site Style Info

Perl Course Modules for In-house Perl Training

Combine Modules for Customised Perl Training

Most of our Perl course modules are outlined below. They can be combined in different ways to produce a wide range of specialist Perl courses. Our own "off the shelf" Perl courses are, for example, built in this way.

With judicious selection, a purchasing company can build itself a bespoke Perl training solution from these modules at a fraction of the usual cost.

The vast majority of modules and their hands-on exercises are delivered in a quarter day. A few exceptional modules last a half day, because cross-dependencies in their content dictate a specific sequence of progress.

Please ring our training advisors for help in assembling a course with appropriate content, speed of progress, prerequisite knowledge, and consistent subject matter, etc.


Listings of our Perl Modules

Preparing to Learn Perl 

  • Things you need to know and do in order to run Perl programs 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 (chmod +x)
  • Perl from the command line (perl command)
  • Specify the perl compiler/interpreter (#!)
  • Using plain text for programs
  • 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 function
  • Variables
  • Scalars — numbers and strings
  • Assignment
  • Simple conditional tests — if
  • Lists
  • Arrays — for storing lists
  • foreach loops
  • Hashes
  • Other loops: while, for, do, until
  • Arrays — the rest
  • Simple input, e.g., while(<>)
  • Functions overview — recognising, writing, using
  • Simple file handling — open, print
  • Subroutines — parameters in and out, listification, local variables (my)
  • Help — perldoc, books, web

Regular expressions 

  • Text manipulation with regular expressions
  • Matching strings
  • Matching the default variable
  • Case-sensitivity and matching
  • Special characters
  • Special characters: where
  • Special characters: what
  • Special characters: how many
  • Built-in character classes
  • Built-in character class examples
  • Capturing
  • Regular expression examples
  • Substitution
  • Global substitutions

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

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
  • Editing files in-place
  • Many real world examples
  • Command line flags
  • Many examples using regular expressions

Handling Databases with Perl 

  • Interacting with SQL databases from Perl
  • Using DBI
  • Connection/disconnection, log in/log out
  • Retrieving a single record
  • Retrieving multiple records
  • Update/insert queries
  • Placeholders and bind values
  • Connecting through ODBC

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 for parameter parsing
  • GET
  • POST
  • Debugging CGI programs
  • Running CGI programs at the command line

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

Creating Web Pages with HTML::Template 

  • Using a simple print statement to output HTML
  • Embedding Perl in HTML
  • Template systems — separating code and layout
  • HTML::Template
  • HTML::Template conditionals
  • HTML::Template loops
  • Changing the templates but not the code

Advanced Perl Regular Expressions 

  • Commenting regexps — /x
  • Word boundaries
  • Grouping without capturing
  • Single/many line strings
  • Zero-width lookahead assertions
  • Lookbehind assertions
  • Back-references
  • Alternation
  • Quantifiers: ?, {}
  • Non-greedy quantifiers
  • Finding multiple matches
  • Dynamically making replacement text

Creating Classes and Objects in Perl

  • Using object-orientation: classes and objects
  • Constructors
  • Object methods
  • Destructors
  • Dual-purpose class and object methods
  • Inheritance
  • An example class: CGI::Page

Advanced Perl Miscellany

  • Exception-handling: trapping run-time errors
  • Executing code fragments in strings
  • Secret subroutines
  • Static variables
  • Subroutine prototypes
  • Benchmarking code

Creating Perl Modules

  • Modules
  • Packages & files
  • Creating a module
  • Defining functions in modules
  • Exporting functions from modules
  • Variables in modules
  • When you should create a module

Logging with Perl

  • Text logs
  • Logs used on Unix
  • Handling state
  • Disk usage problems
  • Log analysis
  • Log munging
  • Logging related modules

Managing Networks with Perl 

  • Host Files
  • DNS
  • NIS lookups
  • WHOIS
  • LDAP
  • ADSI
  • Sending and receiving email
  • Related modules

Perl Security Issues 

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

Managing Users and Processes with Perl 

  • User identity across platforms
  • Process control
  • Scheduling events
  • Managing disk quotas
  • Querying filesystem usage
  • Monitoring file operations
  • Monitoring network operations
  • Related perl modules

mod_perl 

  • What is mod_perl?
  • Apache::PerlRun
  • Apache::Registry
  • Persistent database connections: Apache::DBI
  • Migrating from CGI to mod_perl
  • Setting Up mod_perl
  • Configuring Apache and mod_perl

Network Programming with Perl 

  • Berkeley sockets
  • Higher-level Perl interfaces
  • Modules for writing network clients
  • Modules for writing network servers
  • Net::FTP, LWP
  • Multiplexing network input/output with select

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

Perl Style 

  • The Philosophy of Perl
  • Why good style is important
  • Good style
  • Bad style

Using LWP for web Client applications 

  • A library for WWW access in Perl
  • Library components (modules)
  • The fully object-oriented interface vs. a very simple procedural interface
  • Basic and digest authorization schemes
  • Redirect handling
  • Access through proxy servers
  • Building robots and parsing robots.txt files

Advanced Object-Oriented Techniques in Perl

  • Multiple inheritance
  • Method resolution algorithm
  • Customizing method dispatch using AUTOLOAD
  • Using tie to make instances simulate scalars, aggregates, or file handles
  • Operator overloading

Perl for Microsoft Windows

System interaction

  • Connecting to other programs
  • Unsafe pipes
  • Using IO::Pipe
  • Grabbing a program's output
  • Other ways to run programs

Managing Dates and Times in Perl

  • Time-keeping concepts
  • Built-in time functions
  • The DateTime modules
  • Storing dates for retrieval

Internationalization and Locales in Perl

Writing Cross-Platform Perl

Handling XML Data in Perl

Handling Unicode in Perl