Expert-led training for your team

Perl training course

Develop Engaging, Web Applications With Perl

JBI training course London UK

"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"

Brian Leek, Data Analyst, May 2022

Public Courses

12/08/24 - 3 days
£1995 +VAT
23/09/24 - 3 days
£1995 +VAT
04/11/24 - 3 days
£1995 +VAT

Customised Courses

* Train a team
* Tailor content
* Flex dates
From £1200 / day
EDF logo Capita logo Sky logo NHS logo RBS logo BBC logo CISCO logo
JBI training course London UK

Course Otline

Perl is a mature, extremely flexible, general-purpose programming language, which is especially well-suited to textual manipulation. In addition to its brilliant built-in-facilities, there are vast freely-accessible libraries of Perl code to help build almost every conceivable application. And it’s available free-of-charge.

The capabilities of Perl have been applied by a wide range of professionals in both systems support and programming fields for various applications including manipulating text and data, database access, CGI programming, HTML generation, and parsing and generating XML files.

This five-day course provides a comprehensive examination of the major aspects of the Perl programming language and an overview of selected applications, with an emphasis on database and web server processing. It covers basic through intermediate and advanced techniques and programming structures provided by Perl5. A number of mainly advanced topics are normally self-study, or as time allows. This is a ‘hands-on’ course with many practical examples of everyday use of Perl, as well as some more substantial exercises.

Course Content

All exercises and examples are designed to achieve the maximum benefit for delegates. They aim to effectively demonstrate the concepts covered in the course and provide an opportunity to experiment with them; many of the exercises develop custom code which encapsulate complex functionality that can be used in numerous real world applications.

This course has been developed for real-world, commercial scenarios by our expert instructors. See below for detailed syllabus. If you have a technical question, please email [email protected]

What you will learn

1. Fundamental principals behind Perl.
2. Data Types, Expressions, operators, and scalar data functions
3. String processing & Manipulation
4. Control Structures, Normal Arrays & Lists
5. Functions and Subroutines
6. Hashes (associative arrays)
7. Handling Text Files
8. Regular expressions
9. Packages and modules
10. Web Server Programming.


Perl with CGI Training Course Outline


Perl as a practical language
Perl applications and capabilities
Perl flavours, including Perl 6
Compiling and invoking Perl


Program structure, including comments
Standard input, output and error
Input and output functions and constructs

Data types, expressions, operators

Integers, floats, strings
Scalars, variables, assignment and scope
Creating expressions using operators
Conversion functions

String processing and manipulation

Unicode support
Simple string functions
More advanced string functions
Regular expression basics
Transliteration operator

Basic control structures

Relational expressions
Conditional processing: if , else, unless, elsif
Logical operators
Looping: while, until, for
List constructor
foreach with lists
Simple subroutines

Other control structures

The conditionasl operator
Statement modifiers
Using logical operators as control structures
Labels and other loop constructs

Arrays and lists

Defining normal (ordered) arrays
Assigning and extracting values
foreach with arrays
Array dimensions
Extending and reducing arrays
Conversion functions: split, join
List interpolation; slices
Array functions: pop, shift, push, unshift, splice
List functions: sort, reverse, map, grep

Functions and subroutines

Creating your own functions and subroutines
return value(s)
Passing (and localising) arguments: the @_ array
my, local, and state functions
defined function

Hashes (associative arrays)

Defining hashes
Assigning and extracting hash elements
keys function
Hash element functions: exists, delete
Accessing values: values, each
Hashes in list/scalar context
Hash dimensions; hash slices

Special variables

Global special arrays
Array and hash special variables
Regular and per-filehandle special variables

Reading and writing text files

Filehandles; open and close functions
Opening files for input, output and appending
Reading/writing individual/multiple lines
die, warn, exit and the special variable $!

Format and the Write Function

Declaring and defining formats
Fieldline and fieldholder definition
Invoking a format...the write function
Changing the filehandle using select
Top-of-page format

Introduction to references

Creating references to anonymous data
‘Multidimensional’ arrays
Reference types and ref function
Referencing/dereferencing existing data
Passing array and hash references to subroutines
Hashes of arrays
Arrays of hashes
Sorting arrays of references
Symbolic references
Variables or blocks as variable names

More complex data structures

Selecting the appropriate data structure
Complex and nested data structures
Data serialisation

Packages and module basics

Package scope and symbol tables
my, our, use vars;
use and require keywords
Module location: @INC and %INC; use lib
Module invocation variations
Standard library modules and examples
Implementing simple modules
Exporter standard module

Regular expressions

Match and pattern-binding operators
Alternation and grouping
Character classes including special classes
Anchors and word boundaries
Quantifiers and greediness
Regular expression special variables
qr operator and study function
Use of modifiers
Advanced and cloistered modifiers
Substitution operator
Global and Perl-expression substitution
Extended regular expression sequences

Further file and storage features

File tests, eg -e FILENAME

Using @ARGV for multi-file processing
In-place editing
open modes

Emulating OS commands

chmod, mkdir, rmdir, chdir functions
link (Unix), unlink and rename functions
stat and lstat functions, and module equivalents
Cwd module
system function

Directory contents

glob function and alternatives
Opening and closing directory handles
Reading directory contents…readdir
File::Find module

Time functions

gmtime, localtime, time, times
Time-related modules

Object-oriented programming

Background to object-orientation
Accessing object methods
Class methods and attributes
bless function
The -> notation and variations
Object-oriented wrappers for complex data
Perl-style inheritance, @ISA special array

Ties and closures

Introduction to the tie command
Tied scalars, arrays and hashes
Unix-like DBM databases and DBM hashes
SDBM_File and similar modules
Pseudo databases
Tied handles
Private data via closures
Perl 5.10 state declaration

More on modules and packages

Specialised import lists
import function
Multiple packages in a module
BEGIN, END and similar blocks
eval blocks and eval function
Default functions and methods
AUTOLOAD functions

Database processing

RDBMS connectivity from Perl
‘Standard’ DBI/DBD approach
Other possibilities, eg Win32::ODBC
Non-RDBMS data sources

Database interaction via DBI module

Database modules: DBI and DBD::...
Installing DBD modules
Connecting to databases via DBI/DBD
DBI->connect method; connection descriptors
prepare and execute
Fetching and retrieving data...fetchrow_array
Other fetch..._... methods
select... methods
Standard error handling

Perl & web server programming

The CGI specification
Using Perl with a web server program
Preparing a Perl program for web server use, related and alternative modules
Unbundling data from the client
Sending dynamic HTML documents

The module

Function-oriented and object-oriented approaches
The param function
The header and start_html functions
HTML output functions
Handling forms
Handling tables
CGI with DBI (or Win32::ODBC)
Alternatives, eg CGI::Lite

Other web server issues

General Perl security issues
Security issues in outline
Serving exception and alternative output
Maintaining state
Persistent connections and scripts

Following are self-study or as time allows

Miscellaneous functions

srand, rand
pack and unpack
Other bitwise operators and functions


Typeglobs, local() and my()
Applying typeglob aliasing
Typeglobs and references
Typeglobs and filehandles

The Standard Library

Time modules


The CPAN; example CPAN modules

Installing CPAN modules


AUTOLOADing modules
SelfLoader, AutoLoader and related modules
The autouse pragma

Distributing modules

h2xs utility
The blib pragma
Contributing to CPAN

Further DBI module features

DBI metadata
Customised error handling

CGI security in more detail

General and specific security issues
Security problem avoidance
Denial of service attacks
Restricting CGI permissions

Other applications

XML parsing and processing
Perl/TK introduction
HTML parsing
Perl and AJAX

JBI training course London UK

Experienced developers who need a firm comprehensive foundation in the language and a succinct appreciation of the capabilities of Perl in selected application areas. Systems administrators, database administrators and testers; developers working with Perl applications of all types.

5 star

4.8 out of 5 average

"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"

Brian Leek, Data Analyst, May 2022

“JBI  did a great job of customizing their syllabus to suit our business  needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and  the Instructor handled this particularly well - very impressive”

Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022



JBI training course London UK



Sign up for the JBI Training newsletter to stay updated with world-class technology training opportunities, including Analytics, AI, ML, DevOps, Web, Backend and Security. Our Power BI Training Course is especially popular.  Gain new skills, useful tips, and validate your expertise with an industry-leading organisation, all tailored to your schedule and learning preferences.

Why Come to JBI Training for A Perl Course Course?


  1. Lists and Arrays
    • Perl List Handling
    • Declaring Array Variables
    • Accessing and Modifying Arrays
    • Whole Array Operations
    • Functions on Arrays
      • map, grep, splice
    • Slicing Arrays
    • List vs Scalar Context
  1. Hashes
    • Hashes vs Arrays
    • Declaring a Hash
    • Importance of Hashes
    • Accessing Hash Keys and Values
    • Hash Slices
    • Hash Ordering and Sorting
    • Querying and Removing Items 
  2. Subroutines
    • Subroutines
    • Calling a Subroutine
    • Subroutine Return Values
    • Passing Subroutine Arguments
    • Writing Subroutines
    • Subroutine Arguments
    • Subroutine Return Values
    • Subroutine Prototypes
    • Local Variables
  3. Modules and Packages
    • Using Modules
    • The Library Directories
    • Using Functions from Modules
    • Standard Modules
    • Writing Modules
    • Namespaces
    • Symbol Export
    • BEGIN and END Blocks
    • The require and do statements 

+44 (0)20 8446 7555

[email protected]



Copyright © 2023 JBI Training. All Rights Reserved.
JB International Training Ltd  -  Company Registration Number: 08458005
Registered Address: Wohl Enterprise Hub, 2B Redbourne Avenue, London, N3 2BS

Modern Slavery Statement & Corporate Policies | Terms & Conditions | Contact Us


Rust training course                                                                          React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                            C++ training course

Power Automate training course                               Clean Code training course