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.    
         |