Intermediate/Advanced Perl class

Date and Time: 
2009 Aug 11
2009 Aug 12
2009 Aug 13
2009 Aug 14

PERL MODULES, REFERENCE & OBJECTS: Using/Writing Perl Modules, References, Data Structures,
Object-Oriented Perl, Exceptions, Signal Handling.
STRINGS, UNICODE, AND PATTERN MATCHING: Filehandles to in-memory strings, Constant and/or
read-only strings, String functions from Scalar::Util, CPAN string modules, Binary data/character data?,
Perl Unicode support, Encodings & I/O layers, Combined characters, Troubleshooting, Internationalization
vs. globalization, Maximal/minimal/possessive quantifiers, Backtracking control verbs, Match variables &
pattern switches, White space controls, Context & scoping issues, Case-conversions & quoting, Capture
Buffers, Dynamic regexes using qr//, New relative & named capture buffers, Lookahead & lookbehind
assertions, Embedding code in patterns, Dynamic & recursive patterns, Security concerns, CPAN regex
PACKAGES, MODULES & CLASSES: Typeglobs, Per-package symbol-table hashes, Symbolic
references, Overriding, Garbage collection & reference counting, References, Saving complex data
structures, New & improved pragmas & modules, Numbers as objects, Lexical pragmas, Conditional
module loading, New object facilities, Object privacy via safe-hashes or closures, Diamond-inheritance
issues, Tying variables and handles to classes; Overloading operations & constants, Packaging modules
for distros.
MULTITASKING VIA PROCESSES AND THREADS: Full-process forking vs. threading, Signals: safe
and otherwise, Accessing POSIX signal facilities, Signals, system(), and backticks, Stderr redirection,
Security concerns, Safe pipe opens, Deadlock issues, IPC::Open2 and IPC::Open3, Low-level primitives:
fork, pipe, waitpid, exec, Forking servers & client-server hybrids, Sharing data, The ithread model: use
threads, Thread management, Retrieving data, Yielding the processor, Locking protocols & deadlock
avoidance, The Thread::Queue module, Thread-queues versus process-pipes,Using Semaphores, Process
pools vs. thread pools, Useful threading modules from CPAN.
Prerequisites: Working knowledge of PERL Level 1 programming. Especially valuable for PERL
programmers/system administrators who handle international or legacy datasets, who need to output in
UTF-8 (like most Web pages); those needing complex data structure or object facilities, those interested
in the higher-level object facilities of tying and overloading or in building their own lexical pragmas, and
those who need to write programs that do more than one thing at a time.
To register, visit: Staff Development Catalog via Connect at: Log on using your UCAS (timecard) login and password,
click the Training and Education Tab on top of the page, click the Staff Development Catalog, search by
class, click details and enroll.
COST $533/pp: (FREE TO NCAR STAFF - paid through NCAR Directorate). For non-NCAR staff,
have your representative with signature authority email Kate Pohl,, with account
information to charge. A $50 cancellation fee with be assessed for cancellations made within 48 hours of

Event Category: