Site Sections => 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.

  • N.B. GBdirect write fully-bespoke courses for clients in all of our specialist areas of consultancy. If you have such a requirement and the budget for it, please contact our course developers for advice and support.

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

Reading Perl 

  • Reading well-written Perl programs
  • Reading badly-written Perl programs

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

  • ActiveState Perl
  • The Win32 modules
  • Some Win32 functions
  • Win32::Process
  • Win32::Registry
  • Win32::OLE

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

Perl training UK enquiries

UK Training enquiries and feedback form.

Perl training UK prices

For publicly scheduled training (individual places), see our UK training schedule.

In-house training for company groups is charged at a daily rate per group — see our In-House UK Training Guidelines.

Publicly Scheduled Training Locations

We currently run public training courses in the following locations:

  • London, UK
  • Leeds, West Yorkshire, UK
  • Birmingham, West Midlands, UK
  • Carshalton, Surrey, UK
  • Chester, North West, UK
  • Coventry, West Midlands, UK
  • Edinburgh, Scotland, UK
  • Glasgow, Scotland, UK
  • Harwell, Oxfordshire, UK
  • Manchester, North West, UK
  • Milton Keynes, Buckinghamshire, UK
  • Newark, Nottinghamshire, UK
  • Reading, Berkshire, UK
  • Slough, Berkshire, UK
  • Stevenage, Hertfordshire, UK
  • Wakefield, West Yorkshire, UK
  • Wokingham, Berkshire, UK

Most UK public training courses are available on a monthly basis.

Please see the individual course outlines or our public training schedule for details.

In-house (on-site) training locations

We deliver in-house courses at client premises and/or training facilities in any part of the world which is practically and commercially accessible.

Our In-house training guidelines outline our basic requirements and our UK pricing structure. To estimate costs for training in other countries, simply convert to your local currency and then make a rough calculation of our tutor's costs for travelling to and staying at your location.


West Yorkshire Office

GBdirect Ltd
Training Division
Bradford Design Exchange
34 Peckover Street
BRADFORD
BD1 5BD
West Yorkshire
United Kingdom

training@gbdirect.co.uk

Training: 0800 651 0338
General: +44 (0)870 200 7273
Finance: +44 (0)1353 615 174

Please call between 0900 and 1700 (UK time) on Monday to Friday


South East Regional Office

GBdirect Ltd
Training Division
18 Lynn Rd
ELY
CB6 1DA
Cambridgeshire
United Kingdom

training@gbdirect.co.uk

Training: 0800 651 0338
General: +44 (0)870 200 7273
Finance: +44 (0)1353 615 174

Please call between 0900 and 1700 (UK time) on Monday to Friday


Please note:
Non-training enquiries should be directed, initially, to our UK national office in Bradford (West Yorkshire), even if the enquiry concerns services delivered in London or South/East England. Clients in London and the South East will typically be handled by staff working in the London or Cambridge areas.