Course duration
- 4 days
Course Benefits
- Learn to debug Perl applications
- Learn to efficiently manipulate lists in Perl
- Learn to work more effectively with Perl packages
- Learn to work with Tied Variables in Perl
- Learn to manipulate databases with Perl
- Learn to effectively use Perl Modules
- Learn to work with Perl/Tk
- Learn to extend Perl with C/C++
- Learn to embed the Perl Interpreter into a program
- Learn to create your own Perl modules
Course Outline
- Debugging Perl
- Warnings
- Diagnostic Messages
- Carping, Confessing, and Croaking
- Strict Checks
- Compiler Pragmas
- Debugging Flags
- Your Perl Configuration
- The Devel::Peek Module
- The Data::Dumper Module
- Expert List Manipulation in Perl
- The 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 in Perl
- Blocks
- Subroutines
- Subroutine Prototypes
- Code Refs and Anonymous Subroutines
- Typeglobbing for the Non-Squeamish
- Local (Dynamic) Variables
- Lexical Variables
- Persistent Private Subroutine Variables
- Closures
- The eval Operator
- The Block Form of eval
- The String Form of eval
- Block Form of eval for Exception Handling
- Perl 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 in Perl
- 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 in Perl
- 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 in Perl
- 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
- Introduction to Perl/Tk
- Tcl, Tk, Tcl/Tk, Tkperl, Perl/Tk, etc.
- Perl/Tk
- Creating a Perl/Tk Application
- GUI Programming Overview
- Adding Widgets
- Scrolled Widgets
- Configuring Widgets
- Menus
- More Fun with Menus
- Using FileSelect
- Perl/Tk Programming
- Tk::Error and Tk::ErrorDialog
- Configuring Widgets
- Geometry Management
- Geometry Management with grid()
- The Frame Widget
- Defining Widget Callbacks
- Bindings
- Nonblocking I/O with fileevent()
- Tags
- Other Widgets
- Other Tk Commands
- Getting Tk
- Extending Perl with C/C++
- Extending the Perl Interpreter
- Overview of Perl5 XSUBs
- Get Started with h2xs
- Set up the Perl Wrapper Class
- Write the XS Code
- The XS File
- Write Some Test Code
- What Do You Want?
- Returning Values on the Stack
- A Walk Through an XSUB
- Arguments to XSUBs
- Other h2xs Options
- Embedding the Perl Interpreter
- Why Embed Perl?
- Embedding Perl in a C Program
- Compiling the Program
- perlmain.c
- Perl Data Types
- Macros and Functions
- Manipulating Scalars
- Memory Management
- Script Space
- Evaluating Perl Expressions
- Dynamic Loading
- Multiple Perl Interpreters
- Module Development and Distribution in Perl
- 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 in Perl
- Think First
- Object-Oriented Design
- Object-Oriented Development
- Library Modules
- Utility Programs
- Filters
- Performance
- Timing with Benchmark
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Class Prerequisites
Experience in the following is required for this Perl class:
- Perl Programming and Perl application development experience
Experience in the following would be useful for this Perl class:
- C or C++ programming
Since its founding in 1995, InterSource has been providing high quality and highly customized training solutions to clients worldwide. With over 500 course titles constantly updated and numerous course customization and creation possibilities, we have the capability to meet your I.T. training needs.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.