Perl  training

Perl Course Content

Introduction to Perl
  • Origin and Design Goals of Perl
  • Overview of Perl Features
  • Getting and Installing Perl
  • Accessing Documentation via perldoc
  • HTML-Format Reference Documentation
  • Perl Strengths and Limitations
Getting Started With Perl
  • Explicit Invocation of the Perl Interpreter
  • Running Perl on UNIX vs. Windows
  • Running Perl from the Command Line
  • Using Command Line Options
  • Using Debug Mode
  • Implicit Invocation of the Perl Interpreter
  • Running and Debugging Perl Scripts
  • Simple and Compound Statements
  • Fundamental Input Techniques
  • Using the print Function to Generate Standard Output
Using Variables
  • Scalar Variables
  • Introduction to Standard Data Types
  • Retrieving Standard Input Using the Default Variable $_
  • Reserved Scalar Variables
  • Assigning Strings and Numbers to Scalar Variables
  • Declaring Constants for Persistent Values
  • Using strict to Declare Variables
Pattern Matching in Perl
  • Regular Expressions in Perl
  • Using Pattern Matching Operators
  • Altering Data with Substitutions in Regular Expressions
  • Using Backreferences to Capture Data from Regular Expression Matching
  • Global and Case-Insensitive Matches
  • Altering Data with Character Translation
  • Using Variables in Patterns
  • Introduction to Fundamental Operators
  • Operator Precedence and Associativity
  • Using the Ternary Operator ?: as a Shortcut for the if Statement
  • Using FILEHANDLE and <> File I/O Operators for Standard Input/Output
  • Using the Shortcut Operators +=, -=, *=, /=
String Manipulation
  • String Comparison
  • String Relations
  • Concatenation
  • Substring Manipulation
  • Using chomp and chop to Eliminate EOL Characters
  • Escape Characters for Formatting
  • String Manipulation Functions
Flow Control: Conditional Statements and Looping
  • Conditional Expressions and Logical Operators
  • if/else/elsif and unless
  • Constructing switch/case Equivalent Expressions
  • while Loops and do Loops
  • for and foreach Loops
  • Labels
  • Altering Program Flow with next, last, and redo
  • Trapping Errors with the eval Function
  • Terminating a Script with exit
Subroutines and Parameters
  • Simplifying Scripts with Subroutines
  • Defining and Calling a Subroutine
  • Passing Arguments by Value
  • Passing Arguments by Reference
  • Using return to Return a Value
  • Controlling Variable Scope using my and local Keywords
Arrays and Hashes
  • Defining Numeric Index Arrays
  • Defining Associative Arrays
  • Sorting Arrays with the sort Function
  • Adding and Deleting Items Using push, pop, shift, and unshift
  • Using slice, splice, and reverse
  • Other Array Manipulation Techniques
  • Looping through an Array
  • Merging Arrays
  • Associative Array Manipulation Functions
  • Introduction to Hashes
  • Preallocating Memory to Optimize Hash Performance
Packages and Modules
  • The Power of Packages and Modules
  • Introduction to Standard Modules
  • Where to Find Modules on the Internet
  • Installing a Module on UNIX or Windows
  • Creating Packages for Portability
  • Using Packages to Create Isolated Namespaces and to Separate Code
  • Creating Modules
  • Creating and Using Symbols in a Module
  • Using the Exporter to Export Symbols from a Perl Module
File and Directory I/O
  • Using open and close
  • File Open Modes
  • Reading Files into Arrays
  • Retrieving File Metadata
  • Built-in File Management Functions
  • Using print and write
  • File Test Operators
  • Directory Manipulation Using opendir, closedir, readdir, chdir, mkdir and rmdir
Input/Output Processing
  • Parsing Input
  • Using Standard Input, Standard Output, and Standard Error
  • String and Field Processing
  • Using Streams and Pipes
  • Using die to Quit with an Error
  • Redirecting Standard Output and Standard Error to a File
  • Getting Standard Input from a File
Implementing Command Line Arguments
  • Reading Command Line Arguments from @ARGV
  • Read Files Explicitly with and Implicitly with <>
  • Manipulating Positional Parameters with push, pop, shift
  • Process Lists of Files
  • Processing Command Line Options with getopt or getopts
  • Analyzing Command Line Argument Values with the Getopt::Std and Getopt::Long Modules
  • Reserved Variables
  • Manipulating Identifiable Options Using GetOptions
Perl Report Formatting
  • Defining Report Formats
  • Justifying Text (Left, Right, Center)
  • Using write to Generate Reports
  • Defining here Documents for Report Customization
  • Creating Report Headers
  • Using Built-in Variables to Control Report Appearance
  • Printing Line Numbers on a Report
  • Formatting Multi-Line Output
  • Writing Formatted Text to a File
Debugging In Perl
  • Using the Built-in Perl Debugger
  • Starting the Debugger
  • Debugger Command Syntax
  • Checking for Script Syntax Errors
  • Solving Compile-Time Errors
  • Single-Stepping through a Script
  • Executing to Breakpoints
  • Setting Global Watches
  • Printing Values of Variables
  • Listing All Variables Used in the Script
  • Using Strict Error Checking
  • Quitting the Debugger
  • Life Cycle of a Reference
  • Hard References and Anonymous References
  • Use of References to Create Complex Data Structures
  • Creating Hard and Anonymous References
  • Modifying References
  • Dereferencing a Reference
  • The Arrow Operator ->
  • Building Complex Data Structures with Multi-Dimensional Arrays and Hashes
Accessing a Database Using Perl DBI
  • Database Access Life Cycle
  • Using DBI and DBD to Connect to a Database
  • Fundamental Data Storage and Retrieval Strategies
  • DBI Query Syntax
  • Using DBI Methods to Retrieve Database Information
  • Preparing Queries to be Executed
  • Creating Parameterized Queries
  • Executing Queries Using execute and do
  • Fetching the Result Set to Achieve Workable Data in the Perl Script
  • Extracting Data Using an Array
  • Extracting Data Using a Hash
  • Useful Utilities to Aid in Database Development
  • Using Other Modules to Access Databases on the Web
  • Extracting Data Using a Hash
  • Displaying Results from Queries in a Report
  • Releasing Database Resources
Perl Object Oriented Programming
  • Object Oriented Programming Concepts
  • Object Oriented Programming Terminology
  • How Perl Implements Object Oriented Programming
  • Modeling Software Objects Using Classes and Base Classes
  • Creating Classes, Objects, Methods and Attributes
  • Writing Constructors to Initialize of Objects
  • Using bless to Turn References into Objects
  • Creating Class Hierarchies through Inheritance
Web Architecture and CGI Scripting Overview
  • Static vs. Dynamic Web Pages
  • Serving a Static HTML Web Page
  • Serving a Dynamic HTML Web Page
  • Dynamic Web Page Capabilities
  • The Common Gateway Interface
  • How Server-Side CGI Scripts Work
  • Differences between Client-Side and Server-Side Script Environment
  • Strengths and Weaknesses of Web Programming Languages
  • CGI Scripting with Perl
  • Perl’s Role in Distributed Web Applications
  • Using Environment Variables to Control CGI Scripts
  • Communicating with the Web Server
  • Perl CGI Script Instantiation and Invocation
  • Generating Output for the Browser
  • CGI Security Mechanisms
Configuring a Web Server for CGI
  • Servers and CGI
  • The Apache httpd.conf File
  • Aliasing Standard Directories in Apache
  • Using Standard Apache-Aliased Directories
  • The Default Apache cgi-bin Directory
  • Aliasing CGI-Enabled Directories in Apache
Fundamentals of CGI Scripting with Perl
  • Perl’s Role in Distributed Web Applications
  • Using Environment Variables to Control CGI Scripts
  • Communicating with the Web Server
  • Perl CGI Script Instantiation and Invocation
  • Generating Output for the Browser
  • CGI Security Mechanisms
  • The Importance of the “Shebang” Line
  • “Shebang” Line CGI Errors
  • Debugging CGI Errors
  • Linux vs. Windows File Format Errors
  • Setting Linux File Protections
  • Specifying the Page MIME Type
  • Generating Standards-Compliant HTML
  • Generating Dynamic Web Pages Using Perl/CGI
Generating Dynamic Web Pages and Dynamic Content
  • The Role of JavaScript
  • Generating JavaScript Using CGI
  • Displaying Data in Tables
  • Using Environment Variables to Control CGI Scripts
  • Displaying Data from Files
  • CGI Output Stream Buffering
Dynamic Behavior Based on Query Strings
  • The Query String Part of a URL
  • Parsing the Query String
  • Using Query Strings to Maintain Session State
  • User-Defined Modules and CGI
Processing HTML Forms with Perl CGI
  • Creating and Submitting HTML Forms
  • HTML Input Elements
  • Submitting a Form
  • Form Interaction Summary
  • Populating Form Elements Using CGI
  • Processing HTML Forms
  • Characteristics of the GET Method
  • GET Method Environment Variables
  • Characteristics of the POST Method
  • POST Method Environment Variables
  • Using Form Data Validation to Check Data Values
Using the Perl Module - Introduction
  • Orientation to
  • The Power of Perl-Supplied Routines
  • Simplifying Debugging
  • Using in Object-Oriented Style
  • Named Parameter Syntax
  • Using in Procedural Style
  • Importing Groups of Methods
  • Output and XHTML
  • Mixing Methods with Standard Perl
  • Custom Tag Generation
Form Processing with
  • Classes of Methods
  • Specifying Arguments for HTML Tags
  • Differentiating Blank & Missing Parameters
  • Using Passed Parameters as Numbers
Maintaining State with
  • State Information and the Web
  • Using Extra Path Information
  • Using Hidden Fields in Forms
  • Using Client-Side Cookies
  • Setting Cookies
  • Cookie Parameters
  • Setting Cookies from Form Data
  • Deleting Cookies
  • Form Validation and Cookie Storage
  • Cookie Deletion
  • Overcoming Cookie Limitations
Performance Optimization Using ModPerl
  • Overview of Apache Web Server Functionality
  • Comparing the Speed of CGI Scripting vs. ModPerl
  • Configuring Apache with Perl and ModPerl
  • Apache Strengths and Limitations
  • Using the Apache::Registry Module
  • Extending and Enhancing Apache Functionality
Developing Multi-Tiered Web Applications
  • Review of Multi-Tiered Web Application Components
  • Putting It All Together
  • Using High-Level Packages to Assist with Scalability and Maintainability