consultix small logo

Advanced Object Oriented Perl

1 day course      Tim Maher & Damian Conway Photo
Consultix
> Training Classes > Perl


Home
Training Services
Public Class Schedule
Training Classes
 - UNIX
 - Linux
 - Perl

Clients and Endorsements
Publications
Interviews
About Consultix
by  Visiting Instructor   Dr. Damian Conway Damian Conway Photo



Next Public Offering:  TBA; Help Us Schedule! 

Description

This two-day seminar, written and presented by Dr. Damian Conway shows you how to build on the basic object-oriented Perl techniques you already know and unlock more of the power of Perl's Object-Oriented capabilities.

Attendees will learn:

  • how to use pseudo-hashes and the standard fields.pm and base.pm modules;
  • how (and when) to bless arrays and scalars;
  • three different ways to implement data hiding for Perl objects (including the Tie::SecureHash module);
  • how Perl implements inheritance and polymorphism (and how you can change the rules of either);
  • how to simulate scalars, arrays, hashes, and typeglobs using ties;
  • the features (and traps) of operator overloading in Perl;
  • two easy ways to build complete classes (semi-)automatically;
  • two ways to do generic programming in Perl;
  • how to use the Class::Classless module to build OO programs without classes;
  • how to use multiple dispatch (polymorphism on steroids) to implement event-driven class hierarchies for simulation and GUI applications.
See below for the full Seminar Outline.


NOTE: Dr. Conway has presented short training seminars to the public that have included portions of the material covered in this course. This two-day version includes expanded coverage on those topics and additional material.

Who Should Attend

Perl programmers who are familiar with:
  • References and Perl data structures,
  • Array and hash slices,
  • ref, bless, map, grep and other advanced Perl operators,
  • the use of object oriented Perl modules, and
  • how to write simple hash based object classes.
This state can be approached by completing various Consultix Perl courses such as  "Intermediate Perl Programming", and "Basic Object Oriented Perl", or  "OO Perl Fundamentals" (which is offered in the preceding week),  by having equivalent theoretical and practical experience, or by studying the following resources:

Author & Instructor

Dr. Damian Conway holds a Ph.D. in Computer Science and is a Senior Research Fellow with the School of Computer Science and Software Engineering at Monash University, Melbourne, Australia.

He is the author of numerous well-known Perl modules including: Class::Contract, Text::Autoformat, Parse::RecDescent, Text::Balanced, Lingua::EN::Inflect, Class::Multimethods, Switch, Quantum::Superpositions, NEXT, Filter::Simple, Attribute::Handlers, Inline::Files, and Coy (all available from your local CPAN mirror).

Picture of OOP Book
  Damian was the winner of the 1998, 1999, and 2000 Larry Wall Award competitions for the most practical Perl utility program. He is a member of the technical committee for The Perl Conference, a columnist for The Perl Journal, author of the book Object Oriented Perl, a member of the Perl 6 design team, and a popular public speaker.

In 2001, Damian received the first YAS Perl Development Grant and spent the year working on projects for the betterment of Perl. He is continuing this work in 2002 under a similar grant from The Perl Foundation.
 

instructors, including Visiting Instructor Dr. Damian Conway, are renowned for their ability to communicate complex concepts in simple terms and to make the study of dry technical material enjoyable. We pride ourselves in providing training experiences that our customers rave about!  

Seminar Outline

  • Review of Perl OO basics
    • packages, references, blessing
    • the three rules
    • Example: a dog-tag class
  • Non-hash-based objects
    • arrays as objects
    • scalars as objects
    • Examples: hash re-iterators; OO bitstrings
  • Pseudo-hashes
    • what they are, how to use them as objects
    • the fields.pm module
    • compile-time type checking
  • Automating class construction
    • Class::Struct
    • Other class construction modules
    • Example: A CD library
  • Inheritance
    • revision of concepts
    • how they work in Perl
    • @ISA, isa(), can(), SUPER
    • Example: a restricted transceiver class
  • Polymorphism
    • When and how to use it
    • Variations on the theme
    • Example: OO lexical analysis
    • Examples: a safer transceiver class
  • Encapsulation
    • the pros and cons of data hiding
    • encapsulation via closures
    • encapsulation via scalars
    • encapsulation via the Tie::SecureHash module
    • Example: the dog-tag class thrice revisited
  • Inheritance revisited
    • tricks with inherited constructors and destructors
    • abstract methods
    • attribute collisions
    • inheritance and pseudohashes: the base.pm module
  • Ties
    • simulating implementing scalars and hashes
    • scalar examples (a bounded scalar; proxies)
    • hash example (a multi-iterable hash)
  • Operator overloading
    • overview and limitations of mechanism
    • overloading operations, conversions, and constants
    • problems with references
    • Example: Klingon arithmetic
  • Grafting other OO models onto Perl
    • classless programming with Class::Classless
    • Examples: Classless network control; Contractual threading
  • Generic programming
    • Why you don't need it in Perl
    • How to do it anyway
    • Examples: generic lists; generic trees
  • Multiple dispatch
    • when regular polymorphism isn't enough
    • cascaded polymorphism
    • table driven dispatch
    • Class::Multimethods
    • Example: GUI event-loop programming

Other Courses


We have courses on many other Perl and UNIX/Linux topics!

© Copyright 1994-2005   Pacific Software Gurus, Inc.   All Rights Reserved.

   Powered by Google