Course Content
Review of Perl Concepts
- Environment requirements
- Perl development process
- Debugging
- Warnings
- Diagnostic Messages
- Carping, Confessing, and Croaking
- Strict Checks
- Compiler Pragmas
- Debugging Flags
- Your Perl Configuration
- The Devel::Peek Module
- The Data::Dumper Module
List Manipulation
- grep Operator
- Lists, Arrays, and List Operators
- Context
- Context and Subroutines
- Initializing Arrays and Hashes
- Reference Syntax
- Auto-vivification
- Defined Values
- Other List Operators
- Usage of map, grep, and foreach
Blocks and Code References
- Blocks
- Subroutines
- Subroutine Prototypes
- Code Refs and Anonymous Subroutines
- Typeglobbing for the Non-Squeamish
- Local (Dynamic) Variables
- Lexical Variables
- Persistent Private Subroutine Variables
- Closures
- ClosuresThe eval Operator
- The Block Form of eval
- The String Form of eval
- Block Form of eval for Exception Handling
Packages
- Review of Packages
- BEGIN and END Blocks
- Symbol Tables
- Package Variables
- Calling Package Subroutines
- Importing Package Symbols
- Exporting Package Symbols
- Using the Exporter Package
- The use Function
- AUTOLOAD and @ISA
- AutoLoader and SelfLoader
Objects and Classes
- Object-Oriented Stuff
- Making Perl Object-Oriented
- References
- The bless Function
- So, What's a Blessed Thing Good For?
- Calling Class and Object Methods
- Object Methods
- Writing Classes
- Constructors
- Inheritance
- What Perl Doesn't Do
Tied Variables
- Why Use tie?
- Tying a Scalar
- Inside Tied Variables
- untie
- Another Tied Scalar Example
- Tying an Array
- A Tied Array Example
- Tying Hashes
- Tie::Hash and Tie::Array
- Tying Filehandles
- What Are DBM, NDBM, GDBM, SDBM, etc?
- Using the DBM Modules
Installing and Using Perl Modules
- Laziness, Impatience, and Hubris
- CPAN
- Using Modules
- Installing a Perl Module
- Unpacking the Module Source
- The Configuration Step
- The Build Step
- The Test Step
- The Install Step
- Using CPAN.pm
- Using Module Documentation
Introduction to DBI/DBD
- The Old Way - DBPerls
- A Better Way - DBI/DBD
- Database Programming
- Handles
- Connecting to the Database
- Creating a SQL Query
- Getting the Results
- Updating Database Data
- Transaction Management
- Finishing Up
DBI/DBD SQL Programming
- Error Checking in DBI
- Getting Connected
- Drivers
- Using Parameterized Statements
- Statement Handle Attributes
- Other Handle Attributes
- Column Binding
- The do Method
- BLOBs and LONGs and Such
- Installing DBI Drivers
Module Development and Distribution
- Distributing Modules
- Get Started with h2xs
- Files Created by h2xs
- The Build Library (blib) Directory
- Unit Testing and test.pl
- Versions
- Using blib
- POD
- POD Translators
- Cutting a Distribution
- Other Niceties
- Makefile.PL
Design and Implementation
- Think First
- Object-Oriented Design
- Object-Oriented Development
- Library Modules
- Utility Programs
- Filters
- Performance
- Timing with Benchmark