<?xml version="1.0"?>
<!-- ?xml-stylesheet type="text/xsl" href="TrainingCatalog.xsl"? -->
<!DOCTYPE course SYSTEM "TrainingCatalog.dtd"
  [ <!ENTITY toc SYSTEM "perladv-toc">
    <!ENTITY obj SYSTEM "perladv-obj"> ]
>
<course title="Advanced Perl">
  <keywords>
    <keyword>Perl training</keyword>
    <keyword>Advanced Perl</keyword>
	<keyword>programming</keyword>
	<keyword>programmer</keyword>
  </keywords>
  <duration units="days">1</duration>
  <format>
    <description>emphasis on practical skills</description>
    <description>hands-on</description>
    <description>workbook</description>
    <description>web-based materials</description>
  </format>
  <courseware>
    <url>http://www.keller.com/perladv/</url>
  </courseware>
  <audience>
    <description>Perl programmers who want to master the language's advanced features</description>
    <description>webmasters</description>
  </audience>
  <overview>
    <p>
    Ready for the next step? If you've been programming in Perl for a
    while, you're ready to start using Perl's numerous advanced techniques --
    the interactive debugger, references, DBM files, modules, and more. Join
    the ranks of the Perl gurus!
    </p>
    <p>
    The popularity of the Perl programming language is growing
    dramatically. It has proven itself an effective tool for solving a variety
    of programming problems including text processing, web site construction,
    data management, networked applications, etc. Its advanced features
    include object-oriented classes and methods, indexed (DBM) files, huge
    collections of reusable code modules available for free (CPAN), and more.
    Using these features improves your productivity as a Perl programmer and
    enables you to build programs that are powerful yet concise.
    </p>
  </overview>
  <objectives>
    &obj;
    <!-- x xmlns:xinclude="http://www.w3.org/1999/XML/xinclude" -->
      <!-- xinclude:include href="perladv-obj"/ -->
    <!-- /x -->
  </objectives>
  <method>
    <p>
    The course consists of six chapters, each presenting one of Perl's
    advanced mechanisms. Each provides sample programs and discussion of the
    principles applied. Finally, each includes a hands-on exercise in which
    the student demonstrates grasp of the mechanism and principles.
    </p>
    <p>
    Programming is best learned by example. This presentation is
    task-oriented rather than the more common but less effective
    feature-oriented approach.
    </p>
  </method>
  <prerequisites minimum="8">
    <prerequisite>
        Basic Perl concepts: variables, control
        of flow (loops, branches), input/output, functions
        (subroutines)
    </prerequisite>
    <prerequisite>
        Compound data structures: arrays, lists, hashes
    </prerequisite>
    <prerequisite>
        Regular expressions
    </prerequisite>
    <prerequisite>
        Use of a text editor (any editor available in the
        classroom is ok, e.g. Notepad on NT, vi on Unix, etc.)
    </prerequisite>
    <prerequisite>
        Familiarity with the programming platform:
        writing and running scripts,
        invoking commands at the command-line,
        command-line options and arguments,
        navigating the filesystem
    </prerequisite>
    <prerequisite>
        Basic notions of I/O in Unix or NT:
        standard in/out/error
    </prerequisite>
  </prerequisites>
  <contents>
    &toc;
    <!-- x xmlns:xinclude="http://www.w3.org/1999/XML/xinclude" -->
      <!-- xinclude:include href="perladv-toc"/ -->
    <!-- /x -->
  </contents>
  <setup>
    <requirement>classroom</requirement>
    <requirement>a computer for each student</requirement>
    <requirement>a computer for the instructor</requirement>
    <requirement>a data projector for the instructor's computer screen</requirement>
    <requirement>connection to the internet</requirement>
    <requirement>a perl interpreter on each computer</requirement>
    <url>http://www.keller.com/curric/perladv-setup.html</url>
  </setup>
  <site>This course can be taught in your classroom, anywhere in the world.</site>
  <travel>Travel outside the San Francisco Bay Area requires reimbursement of the
    instructor's travel expense.</travel>
</course>

