consultix small logo

Consultix


Home
Debug
Training Services
Courses
Clients
Company Information
Publications
Adv. Module Implementation Techniques - 1-Day Seminar

Contact Info

Pointing Instructor Adv. Module Implementation Techniques  ( 1-day Seminar )


by  Visiting Instructor   Dr. Damian Conway      Tim Maher & Damian Conway Photo

Horizontal Line

Next Public Offering:  July 17, 2002    Kirkland, WA
REGISTER ME

Description
This one-day seminar, written and presented by Dr. Damian Conway, presents advanced techniques for rapidly developing highly maintainable Perl modules. Many of the techniques were developed by Dr. Conway himself to facilitate his deployment of dozens of highly regarded and widely used modules (see www.CPAN.org for examples). The advanced techniques are illustrated by exploring the implemention of ten of those modules.

Attendees will learn:

  • How Perl's attribute mechanism works and how a module can make it useable (Attribute::Handler, Attribute::Types).
  • How to reconfigure Perl's method dispatch mechanism in two different ways (NEXT, Class::Delegation).
  • How to write modules based on source code filters (Filter::Simple, Switch, Perl6::Variables).
  • How a single hash can be the entire, lazily evaluated interface to a module (Regexp::Common).
  • How to replace built-in functions and syntax (Inline::Files)
  • How to extend Perl's subroutine call mechanism using lexical subroutine destructors (Hook::LexWrap)
See below for the full Seminar Outline.

Who Should Attend
Intermediate and Advanced Perl programmers who have some familiarity with subroutines and closures, Perl modules and packages, and the basics of Object Oriented Perl. This state can be approached by completing various Consultix Perl courses such as  "Creating and Using Perl Modules",  "Intermediate Perl Programming", and  "OO Perl Fundamentals",  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's module mechanism
    • Packages
    • Modules
    • @INC and %INC
    • Exporter and Exporter::Simple
  • Attributes
    • What they are
    • How they're created
    • Why no-one uses them
    • How the Attribute::Handlers module solves that
    • Attributes instead of ties (the Attribute::Types module)
    • How the Attribute::Handlers module works
    • The future of attributes: Attribute::Handlers::Prospective
  • Method redispatch
    • What is OO dispatch
    • How Perl does it
    • What is OO redispatch
    • How Perl does it
    • How Perl should do it
    • How the NEXT module lets Perl do it
    • How the NEXT module works
  • Delegation
    • Using aggregation instead of inheritance
    • How the Class::Delegation modules lets you do that
    • How the Class::delegation module works
    • Examples:
      • Inheriting uninheritable classes
      • Multiply inheriting un-multiply-inheritable classes
      • Changing Perl's method inheritance semantics
      • Integrating legacy classes in a new hierarchy
      • Multiplexing aggregated classes
  • Subroutine customization
    • "Wrapping" subroutines
    • The Hook:: classes on CPAN
    • Benefits of Hook::LexWrap
    • How Hook::Lexwrap is used
    • How Hook::Lexwrap is implemented
    • Applications:
      • Unit transformation
      • Memoization
  • Source filters
    • How Perl's source filtering mechanism works
    • Using the Filter::Util::Call module
    • Why you might prefer the Filter::Simple module instead
    • How Filter::Simple is used
    • How Filter::Simple is implemented
    • Examples
      • The Switch module
      • The Perl6::Variables module
      • The Inline::Files module
  • Regular expressions
    • Why they aren't used as widely as they might be
    • How the Regexp::Common module tries to overcome that
    • How the Regexp::Common module is implemented
    • Interface minimalism
    • How "user configurability" supports "distributed development"

Other Courses


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


Horizontal Line

Graphic

Graphic

Graphic

Graphic

Graphic

Graphic

Graphic

Graphic


© Tim Maher  1995-2003     Comments?

© Copyright 1995-2004 Pacific Software Gurus, Inc.. All Rights Reserved.