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

Further Perl Programming — a 3–day course

Synopsis

A Perl training course designed take experienced programmers into some further perl aspects, including object orientation.

This Perl course aspects often misunderstood by those who have been using perl for some time. How to write perl modules and then objects, including inheritance, is also covered. The networking modules provide the knowledge to write client/server systems and use of network services

If you are new to perl we suggest that you look at our entry level perl course first.

Suitable for

Delegates will have had experience of perl but are aware that there are parts of Perl that they do not properly understand. Perl is a large language and 'picking it up on the job' has its limitations, delegates benefit from seeing perl done in other ways.

We find that some experienced Perl programmers benefit from our entry level perl course before taking this one. This is especially true if they find concepts like lists of hashes and hashes of arrays difficult.

Like all of our perl training courses, this course is designed for cross-platform application (e.g. Microsoft Windows, IIS, Apache, MacOS, and Linux/Unix). Unix/Linux developers will benefit particularly from Perl variants of popular Unix tools and from the abundance of Perl modules for use with Unix and the Apache web server.

Prerequisites

Delivery

This is a hands-on practical workshop based around the coding of real world solutions to real world problems.

This advanced Perl training course is run primarily as an in-house/on-site course for company groups.

The Perl course can be taught in a bespoke manner taking modules from this and our entry level perl course. This is only available for private company groups 'in-house'.

Please contact us at training@gbdirect.co.uk to arrange delivery of this course for your company or to register an interest in an individual place on a public presentation of this course. N.B. Please state clearly, which one of these two options applies to you.

Publicly scheduled dates, locations, and prices

A schedule of dates for this course is not currently available. Please call 0800 651 0338 or use our contact form to enquire about places and availability.


Contents

Advanced Regular Expressions

  • Reminder of Regular Expression Basics
  • Different quoting methods
  • Writing Regex more clearly
  • Word and line Boundaries
  • Grouping and capturing
  • Zero-Width Lookahead Assertions
  • Lookbehind Assertions
  • Grouping and Backreferences
  • Optional Parts of Patterns
  • Non-Greedy Quantiers
  • Dynamically Making Replacement Text

Advanced Miscellany

  • '0 but true'
  • Trapping Run-Time Errors
  • Secret Subroutines
  • Static Variables
  • Interpolating Expression Evaluation into Strings
  • Pre-Sizing Array and Hash Variables
  • Coercing Subroutine Arguments, prototypes
  • Determining Argument Types and function context
  • Benchmarking

Dates and Times

  • Time Keeping Concepts
  • Built-in Time Functions
  • POSIX functions
  • The Time Zone
  • The DateTime Modules
  • Comparing Dates, Date manipulation
  • Execution time

Handling XML Data in Perl

  • Xml as a Data Storage and Transfer Format
  • Xml::Simple
  • Writing files out and reading them back in
  • XML::DOM
  • Reading in a CSV file

Creating Modules

  • Modules, Packages & files
  • Finding Installed Modules
  • Creating a Module
  • Defining and exporting functions
  • Module Variables
  • Module Initiaisation
  • Module Boilerplate
  • POD — Plain Old Documentation

Creating Classes and Objects

  • Example Class Use
  • Class Implementation & Constructors
  • Object Methods
  • Accessing Object Properties
  • Interpolating Object Properties and Methods in Strings
  • Destructors
  • Static Methods
  • Dual-Purpose Class & Object Methods
  • Inheriting from Other Classes
  • Examples

Advanced Object Orientation

  • Multiple Inheritance
  • Method Lookup
  • The UNIVERSAL Base Class
  • Autoloading Accessor Methods
  • Method Lookup and AUTOLOAD
  • Operator Overloading
  • Connecting Methods to Operators
  • Tying Variables to Modules
  • Implementing Tie Modules

Managing Networks with Perl

  • Network Name Services
  • Querying NIS with Net::NIS
  • DNS Queries from Perl
  • Automating Zone File Generation
  • Making WHOIS Queries from Perl
  • An LDAP Query with Perl
  • ADSI: Active Directory Service Interfaces
  • Sending Mail — several ways

Network Programming with Perl

  • Berkeley Sockets, domains and types
  • Addresses, Port Numbers, Clients and Servers
  • A Simple Client
  • Higher Level Socket Modules
  • TCP Servers with IO::Socket
  • UDP Clients and Servers
  • Unix Domain Sockets
  • Multi Client Servers — Forking
  • Multi Client Servers — Select
  • Net::FTP — File Transfer Protocol
  • LWP — Library for WWW in Perl
  • LWP — Automatic Form Filling

Logging with Perl

  • Parsing Text Logs
  • Web Access Logs
  • Reading utmp Files
  • Reading Windows Event Logs
  • Writing Logs
  • Using Sys::Syslog
  • Logging with a Database
  • Logging Related Modules

Managing Users and Processes with Perl

  • Unix User Information from Perl: Lookup
  • Windows User Information from Perl
  • User Info from Win32::AdminMisc
  • Changing User Information
  • Process Control
  • Process Information Under Unix
  • Using Proc::ProcessTable
  • Windows Process Concepts
  • Scheduling Events
  • Filesystem Quotas
  • Monitoring User Activity: Unix & Windows
  • Modules for Users and Processes
  • Modules for Filesystems

Using Perl for Securing Your System

  • Spotting Unexpected Activity
  • Detecting Attempts to Guess Passwords
  • Searching for Suspicious Files
  • Detecting Changes in Important File
  • Making MD5 Checksums
  • Using SNMP
  • Existing Security Tools