Tricks of the wizard

Tricks of the wizard

Par Mark Jason Dominus de Philadelphia.pm
Date : mercredi 23 juillet 2003 14h15
Durée : 120 minutes
Langue :




This class will explore Perl's most unusual features. We'll look at
some of the standard modules written by famous wizards like Tom
Christiansen, Damian Conway, and Larry Wall, and learn what they're
for and how they work.

First we'll investigate Perl's remarkable 'glob' feature. We'll see
many uses of globs, including the 'Exporter' module, which everyone
uses but hardly anyone understands. We'll discuss how to accomplish
the same globby magic in Perl 6, which won't have globs.

After this we'll look at unusual uses of Perl's 'tie' function, which
scoops the brain out of an ordinary Perl array, hash, or filehandle,
replacing it with your own concoction. We'll make hashes with
case-insensitive keys, arrays that mirror the contents of a file, and
filehandles that suppress annoying output.

Then we'll learn about AUTOLOAD, Perl's function of last resort.
We'll see a tremendously useful application: How to generate the
accessor methods of a class *without* writing pages of repetitive
code. We'll see how Larry's 'Shell' module uses AUTOLOAD to emulate
the Unix shell inside Perl scripts, and how Damian Conway's 'NEXT'
module uses AUTOLOAD for method redispatch.

Section 4 discusses Perl's new "source filter" feature. This magic
allows you to write Perl programs in any language, and translate them
to Perl at the last moment. We'll add a 'switch' statement to Perl
and we'll see how Perl 5 can emulate the variable syntax of Perl 6.

The class will finish with nine very small but useful enchantments
that take thirty seconds each.

o Short introduction

o Globs
o Operations with Globs; aliasing; exportation; forced importing.
o Perl 6
o Passing filehandles
o Globjects
o Wrappers
o Read-only constants
o Templating systems

o Ties
o ID-generating magic scalar
o Case-insensitive hash
o CGI.pm
o Modules that export magical variables: Config.pm
o Tied arrays
o Tied filehandles: 'tee'
o Silencing a noisy subroutine

o Autoloading
o Case-insensitive function names
o Function caching and magic 'goto'
o Function call tracing
o Accessor method construction
o Method code in files
o NEXT.pm
o Shell.pm

o Source Filters
o Filter::Simple
o Encrypted source code
o Filter::Util::Call
o Why "only 'perl' can parse Perl"
o Function tracing revisited
o Internationalization
o Perl6::Variables

o Cantrips
o Returning a False Value
o The Self-Replacing Stub
o Schwartzian Transform
o Debug Printing of Strings
o Debug Printing of Lists
o ?:?:?:
o Booleanumbers
o Local Effects
o Selecting n Different Things




Dernière modification du patron talk/show à 12:26:25 27-Jul-2013
Le contenu de ce site est copyright © 2003 Yet Another Society, Inc.
Pour toute question concernant ce site ou YAPC::EU 2003, écrivez à <yapc-help@mongueurs.net>.
Validations XHTML et CSS.