Perl Programming
Synopsis
This course is designed to give delegates the knowledge to develop/maintain
Perl scripts.
Course Objectives
The delegate will learn to:
• Declare variables and initialize them
• Understand scalar and list context
• Construct expressions with arithmetic, logical and relational operators
• Use iterative type statements
• Use conditional statements
• Read/write text and binary files
• Manipulate text using regular expression
• Use and code subroutines
• Use built-in library functions
• Use arrays and hashes
• Declare and use packages
Suitable for
Programmers who need to write or maintain scripts in Perl.
Prerequisites
Experience of programming in another programming language is required.
Course Contents
Introduction and Basic Syntax
• What is PERL and why PERL is useful
• How to run PERL programs on UNIX and Windows platform
• A simple PERL Program
• Labs
1
Operators and Control Flow
• Scalar variables - usage
• Basic arithmetic operators and how they work with scalar operands
• What an expression is
• How to use the if statement and the == operator
• Two-way and multi-way branching using else and elsif
• Simple loops using while and until statements
• Labs
Scalar Values and Scalar Context
• Scalar values and scalar context
• Integer and floating point representation
• Octal and Hexadecimal notations
• Character strings, single and double quote representation
• Escape sequences
• Interchangeability of character and numeric values
• Labs
More Operators
• More arithmetic operators, **, % and - (unary)
• Integer and string comparison operators
• Logical operators
• Bit manipulation operators
• Compound assignment operators
• Autoincrement and autodecrement operators
• Concatenation and repetition operators
• Conditional and comma operators
• Labs
2
List Context and Array Values
• What lists are
• Relationship between scalars and lists
• Storing lists in array variables
• Accessing elements of arrays and lists
• Range operator
• Array assignment in scalar and list context
• Library functions used with lists
• Labs
List Context and Array Variables
• What lists are
• Relationship between scalars and lists
• Storing lists in array variables
• Accessing elements of arrays and lists
• Range operator
• Array assignment in scalar and list context
• Library functions used with lists
• Labs
Pattern Matching
• How pattern matching works
• Pattern matching operators
• Pattern matching special characters
• Labs part I
• Pattern matching options
• Pattern substitution
• Pattern tagging
• Translation
• Labs
3
Subroutines
• What is a subroutine
• How to define and invoke subroutines
• Argument passing and return values from a subroutine
• Typeglob for argument passing
• Local and global variables in subroutines
• How to nest subroutines
• How to use recursive subroutines
• Special system subroutines - AUTOLOAD, BEGIN and END
• Labs
Associative Array
• What an associative array is
• How to define and use associative arrays
• Initializing and extending hashes
• Assigning and copying hashes
• How to delete elements of an associative array
• How to loop using associative arrays
• Library function used with associative arrays
• How to build advanced data structures using associative arrays
• Labs
Multithreading
• What is Multithreading
• How to check the perl interpreter for multi thread capability
• Create a simple Multi Thread program
• More complex example of multi threading
• Problems with multi thread programs
• Labs
Miscellaneous System and Data Manipulating Functions
• Handling Errors - die, warn, eval
• Handling exceptions - throw, catch
• Handling signals - %SIG hash, kill, alarm, sleep
• Directory manipulation functions
• File attribute functions
• Labs
4
Arrays & Hashes
• Multi-dimensional arrays
• Hashes containing arrays
• Hashes of hashes
• Labs
Modules & Packages
• Namespaces
• Scope resolution operator
• Package declaration
• Use and require
• Data hiding and exporting
• Finding libraries and modules - @INC and %INC
• Setting the search path
• Lab
Miscellaneous
• Perl Internals
• Development structure
• Interpreter structure
• Internal Variables
• Perl compiler
• Fundamental operations