<?xml version="1.0" standalone="no" ?>

<!--  FAI_Perl.xml	Course Outline in XML format
 *
 * Copyright 2009 Affinity IT Training, LLC. All Rights Reserved.
 *
 -->

<!DOCTYPE FAI:CourseOutline SYSTEM "FAI_CourseOutline.dtd">

<?xml-stylesheet type="text/xsl" href="FAI_CourseOutline.xsl" ?>	

<FAI:CourseOutline FAI:link="FAI_Perl.xml"
     xmlns:FAI="http://www.fisher-assoc.com/DTDs/FAI_CourseOutline.dtd" >

  <FAI:CourseTitle FAI:level="Introduction"  FAI:code="PerlProg">
    Perl Programming
  </FAI:CourseTitle>  
  
  <FAI:CourseCategory>Programming Languages</FAI:CourseCategory>
  <FAI:CourseCategory>Perl</FAI:CourseCategory>
  <FAI:CourseCategory>System Administration</FAI:CourseCategory>

  <FAI:SummaryInfo>

    <FAI:CourseDesc FAI:version="1.0" >
	Introduces the common features and language constructs of the Perl programming language.      
    </FAI:CourseDesc>

    <FAI:CourseDuration>
	3 Days
    </FAI:CourseDuration>

    <FAI:CourseAudience>
	Developers seeking to design, implement, or maintain Perl scripts.  
    </FAI:CourseAudience>

    <FAI:CourseObjectives>
   
      <FAI:Objective FAI:desc="Understand the basic programming language constructs" />
      <FAI:Objective FAI:desc="Be familiar with simple data types and expressions" />
      <FAI:Objective FAI:desc="Understand how to manipulate arrays and lists" />
      <FAI:Objective FAI:desc="Understand how to read and write files" />
      <FAI:Objective FAI:desc="Be familiar with pattern matching and substitution" />
      <FAI:Objective FAI:desc="Understand how to write reusable code using subroutines" />

    </FAI:CourseObjectives>

    <FAI:CourseSetupList>

      <FAI:Setup FAI:desc="Perl Download" FAI:link="http://www.perl.com" />
 
    </FAI:CourseSetupList>    

    <FAI:CourseTextList>

      <FAI:Text FAI:title="Course Workbook" />
      <FAI:Text FAI:title="Perl In A Nutshell, Seiver, Spainhour, Patwardhan, Orielly &amp; Assoc." 
                FAI:link="http://oreilly.com/catalog/9780596002411/" />
                
    </FAI:CourseTextList>    

    <FAI:CoursePrerequisiteList>
	<FAI:CoursePrerequisite FAI:title="Previous programming experience is recommended but not required." />
    </FAI:CoursePrerequisiteList>    

  </FAI:SummaryInfo>  

  <FAI:TopicList>

    <FAI:SuperTopic FAI:title="Introducing Perl">

      <FAI:Topic FAI:title="Perl Features and Applications" />
      <FAI:Topic FAI:title="Versions" />
      <FAI:Topic FAI:title="Web Sites" />
      <FAI:Topic FAI:title="Online Documentation Reference " />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Creating Perl Programs">

      <FAI:Topic FAI:title="Creating a Perl Program" />
      <FAI:Topic FAI:title="Implicit vs. Explicit Execution" />
      <FAI:Topic FAI:title="Non-Syntax Errors" />
      <FAI:Topic FAI:title="Components of a Typical Perl Program" />
      <FAI:Topic FAI:title="Simple Statement Syntax" />
      <FAI:Topic FAI:title="Block Statements" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Simple Data Types">

      <FAI:Topic FAI:title="Perl Data Types" />
      <FAI:Topic FAI:title="Identifier Names" />
      <FAI:Topic FAI:title="Scalar Data" />
      <FAI:Topic FAI:title="String Literals" />
      <FAI:Topic FAI:title="Perl Escape Characters" />
      <FAI:Topic FAI:title="Numeric Literals" />
      <FAI:Topic FAI:title="Boolean Conversions / Inferences" />
      <FAI:Topic FAI:title="Setting Scalar Variables" />
      <FAI:Topic FAI:title="Writing To Standard Output" />
      <FAI:Topic FAI:title="Expressions" />
      <FAI:Topic FAI:title="Function Calls" />
      <FAI:Topic FAI:title="Perl Operators" />
      <FAI:Topic FAI:title="Operator Precedence" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>
    
    <FAI:SuperTopic FAI:title="Conditional Execution">

      <FAI:Topic FAI:title="Command Modifiers" />
      <FAI:Topic FAI:title="Grouping Commands" />
      <FAI:Topic FAI:title="Logical Operators" />
      <FAI:Topic FAI:title="Conditional Execution" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Lists and Arrays">

      <FAI:Topic FAI:title="The List Data Type" />
      <FAI:Topic FAI:title="Literal Lists" />
      <FAI:Topic FAI:title="Named Lists (Arrays)" />
      <FAI:Topic FAI:title="Select Array Elements" />
      <FAI:Topic FAI:title="&quot;Unset&quot; Elements" />
      <FAI:Topic FAI:title="Interpolated List Elements" />
      <FAI:Topic FAI:title="Creating an Unnamed List " />
      <FAI:Topic FAI:title="Range Operator" />
      <FAI:Topic FAI:title="Quoted Word and Execution Lists" />
      <FAI:Topic FAI:title="Slicing An Array" />
      <FAI:Topic FAI:title="Command Line Arguments" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="List Functions">

      <FAI:Topic FAI:title="Computing The Size Of An Array" />
      <FAI:Topic FAI:title="Removing All Elements From an Array" />
      <FAI:Topic FAI:title="Splitting a Record into Fields" />
      <FAI:Topic FAI:title="Joining Arrays Elements" />
      <FAI:Topic FAI:title="Removing Elements From Array Start / End" />
      <FAI:Topic FAI:title="Adding Elements to Start / End" />
      <FAI:Topic FAI:title="Reversing Array Elements" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Using Loops">

      <FAI:Topic FAI:title="while" />
      <FAI:Topic FAI:title="until" />
      <FAI:Topic FAI:title="&quot;do while&quot; and &quot;do until&quot;" />
      <FAI:Topic FAI:title="for" />
      <FAI:Topic FAI:title="foreach" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Reading and Writing Text Files">

      <FAI:Topic FAI:title="Open Files" />
      <FAI:Topic FAI:title="Closing Files" />
      <FAI:Topic FAI:title="Reading Records with &quot;&lt;&gt;&quot;" />
      <FAI:Topic FAI:title="Writing Records with &quot;print&quot;" />
      <FAI:Topic FAI:title="Reading and Writing Pipes" />
      <FAI:Topic FAI:title="Chomping" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Associative Arrays">

      <FAI:Topic FAI:title="Lookup Tables" />
      <FAI:Topic FAI:title="Creating From Lists" />
      <FAI:Topic FAI:title="Creating Within Loops" />
      <FAI:Topic FAI:title="Creating By Assignment" />
      <FAI:Topic FAI:title="Keys and Values" />
      <FAI:Topic FAI:title="Accessing Elements" />
      <FAI:Topic FAI:title="Built-In Hashes: ENV, SIG" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Strings and Pattern Matching">

      <FAI:Topic FAI:title="String Matching / Binding Operators" />
      <FAI:Topic FAI:title="Alternate Delimiters" />
      <FAI:Topic FAI:title="Regular Expression Pattern Matching" />
      <FAI:Topic FAI:title="Perl Extended Regular Expressions" />
      <FAI:Topic FAI:title="String Functions" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Pattern Substitution">

      <FAI:Topic FAI:title="Standard Substitution" />
      <FAI:Topic FAI:title="Using Variables In Patterns" />
      <FAI:Topic FAI:title="Replacement Options" />
      <FAI:Topic FAI:title="Reusing Matched Strings " />
      <FAI:Topic FAI:title="Replacement Expressions" />
      <FAI:Topic FAI:title="Character Translation" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Common Perl Shortcuts">

      <FAI:Topic FAI:title="The Magic Variable: $_" />
      <FAI:Topic FAI:title="Read All Lines From A File" />
      <FAI:Topic FAI:title="Using @ARGV and $ARGV" />
      <FAI:Topic FAI:title="Conditional Filters" />
      <FAI:Topic FAI:title="Predefined File Handles" />
      <FAI:Topic FAI:title="In-Place File Editing" />
      <FAI:Topic FAI:title="Iterative Code Wrappers" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Sorting Arrays">

      <FAI:Topic FAI:title="Using The Built-In sort Function" />
      <FAI:Topic FAI:title="Default Sort Order" />
      <FAI:Topic FAI:title="String and Numeric Comparison Operators" />
      <FAI:Topic FAI:title="Ascending and Descending Sorts" />
      <FAI:Topic FAI:title="Customized Sort Comparison" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="Subroutines">

      <FAI:Topic FAI:title="Why Use Subroutines ?" />
      <FAI:Topic FAI:title="Subroutine Syntax" />
      <FAI:Topic FAI:title="Passing Arguments" />
      <FAI:Topic FAI:title="Accessing the Parameter List" />
      <FAI:Topic FAI:title="Creating Local Variables" />
      <FAI:Topic FAI:title="Returning Values" />
      <FAI:Topic FAI:title="Composing Your Own sort Compare Subroutines" />
      <FAI:Topic FAI:title="Lab Exercise" />

    </FAI:SuperTopic>

</FAI:TopicList>
 
</FAI:CourseOutline>
