Perl Programming on Unix - PRL101
| Next public classes scheduled: | ||
| Mar 5 2012 | ||
Duration: 5 days
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.
Topics:
Overview of Perl
- What is Perl?
- Running Perl Programs
- Sample Program
- Another Sample Program
- Yet Another Example
Perl Variables
- Three Data Types
- Variable Names and Syntax
- Variable Naming
- Lists
- Scalar and List Contexts
- The Repetition Operator
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
Quoting and Interpolation
- String Literals
- Interpolation
- Array Substitution and Join
- Backslashes and Single Quotes
- Quotation Operators
- Command Substitution
- Here Documents
Operators
- Perl Operators
- Operators, Functions and Precedence
- File Test Operators
- Assignment Operator Notations
- The Range Operator
Flow Control
- Simple Statements
- Simple Statement Modifiers
- Compound Statements
- The next, last, and redo Statements
- The for Loop
- The foreach Loop
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
Regular Expressions
- Pattern Matching Overview
- The Substitution Operator
- Regular Expressions
- Special Characters
- Quantifiers (*, +, ?, {})
- Assertions (^, $, \\b, \\B)
Advanced Regular Expressions
- Substrings
- Substrings in List Context
- RE Special Variables
- RE Options
- Multi-line REs
- Substituting with an Expression
- Perl RE Extensions
Subroutines
- Overview of Subroutines
- Passing Arguments
- Private Variables
- Returning Values
References
- References
- Creating References
- Using References
- Passing References as Arguments to Subroutines
- Anonymous Composers
- The Symbol Table
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...
Packages and Modules
- Packages
- BEGIN and END Routines
- require vs. use
- Modules
- The bless Function
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
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
Multitasking with Perl
- What are Single and Multitasking?
- UNIX Multi-tasking 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
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



