Audience
  Programmers and system administrators.
Prerequisites
  Fundamentals of UNIX. Experience in a high-level programming language, such as C, C++, or Java, is strongly recommended.
Duration
  Five days.

Outline for PERL Programming

1. Overview of Perl

 

  • What is Perl?
  • Running Perl Programs
  • Sample Program
  • Another Sample Program
  • Yet Another Example

 

2. Perl Variables

 

  • Three Data Types
  • Variable Names and Syntax
  • Variable Naming
  • Lists
  • Scalar and List Contexts
  • The Repetition Operator

 

3. Arrays and Hashes

 

  • Arrays
  • Array Functions
  • The foreach Loop
  • The @ARGV Array
  • The grep Function
  • Array Slices
  • Hashes
  • Hash Functions
  • Scalar and List Contexts Revisited

 

4. Quoting and Interpolation

 

  • String Literals
  • Interpolation
  • Array Substitution and Join
  • Backslashes and Single Quotes
  • Quotation Operators
  • Command Substitution
  • Here Documents

 

5. Operators

 

  • Perl Operators
  • Operators, Functions and Precedence
  • File Test Operators
  • Assignment Operator Notations
  • The Range Operator

 

6. Flow Control

 

  • Simple Statements
  • Simple Statement Modifiers
  • Compound Statements
  • The next, last, and redo Statements
  • The for Loop
  • The foreach Loop

 

7. I/O: Input Operations and File I/O

 

  • Overview of File I/O
  • The open Function
  • The Input Operator
  • Default Input Operator
  • The Print Function
  • Reading Directories

 

8. Regular Expressions

 

  • Pattern Matching Overview
  • The Substitution Operator
  • Regular Expressions
  • Special Characters
  • Quantifiers (*, +, ?, {})
  • Assertions (^, $, \b, \B)

 

9. Advanced Regular Expressions

 

  • Substrings
  • Substrings in List Context
  • RE Special Variables
  • RE Options
  • Multi-line REs
  • Substituting with an Expression
  • Perl RE Extensions

 

10. Subroutines

 

  • Overview of Subroutines
  • Passing Arguments
  • Private Variables
  • Returning Values

 

11. References

 

  • References
  • Creating References
  • Using References
  • Passing References as Arguments to Subroutines
  • Anonymous Composers
  • The Symbol Table

 

12. Complex Data Structures

 

  • Two-dimensional Arrays in Perl
  • Anonymous Arrays and Anonymous Hashes
  • Arrays of Arrays
  • Arrays of References
  • A Hash of Arrays
  • A Hash of Hashes
  • And So On...

 

13. Packages and Modules

 

  • Packages
  • BEGIN and END Routines
  • require vs. use
  • Modules
  • The bless Function

 

14. Introduction to Object-Oriented Programming in Perl

 

  • What is Object-Oriented?
  • Why Use Object-Oriented Programming?
  • Classes, Objects, and Methods in Perl
  • Inheritance, the "is-a" Relationship
  • Containment, the "has-a" Relationship
  • Overloaded Operators
  • Destructors

 

15. Binary Data Structures

 

  • Variable-Length (Delimited) Fields
  • Variable vs. Fixed
  • Handling Binary Data
  • The pack Function
  • The unpack Function
  • The read Function
  • C Data Structures

 

16. Multitasking with Perl

 

  • What are Single and Multitasking?
  • UNIX Multitasking Concepts
  • Process Creation with fork
  • Program Loading with exec
  • File Descriptor Inheritance
  • How UNIX Opens Files
  • One-Way Data Flow - Pipes
  • Example
  • Final Result - Page Viewing

 

17. Sockets Programming in Perl

 

  • Clients and Servers
  • Ports and Services
  • Berkeley Sockets
  • Data Structures of the Sockets API
  • Socket System Calls
  • Generic Client/Server Models
  • A Client/ServerExample
  • A Little Web Server

 

Appendix A - The Perl Distribution

 

  • Where Can You Get Perl?
  • How Do You Build Perl?
  • What Gets Created and Installed?
  • Differences Between Platforms

 

Appendix B - The Perl Debugger

 

  • Overview of the Perl Debugger
  • Debugger Commands
  • Non-Debugger Commands
  • Listing Lines
  • Single Stepping
  • Setting and Clearing Breakpoints
  • Modifying the Debugger
  • The -w and -D Flags