Outline with Timeline

This is the same as the course outline I’d give to students except it has the weeks shown. I never really gave this to anyone since I wasn’t sure that the weeks would work out right, but it’s good for an instructor to see so they know where to stop each week (assuming you’re teaching it in 8 weeks). Also note that the “Talking to the Operating System” section wasn’t of interest to most students (I usually asked in the beginning of the term) so I rarely taught it.

Week 1


  • Why use Perl?
  • How does it compare to other languages?
  • Where’s it heading?


  • How and where to get Perl
  • The environment in our classroom
  • Other configurations

Running a Perl Script

  • Command-line vs. script files
  • Command-line switches
  • Editing and running a script


  • Numeric literals
  • Arithmetic operators


  • String literals
  • String operators

Formatting Output

Week 2

Scalar Variables

  • What are scalars and how are they used?
  • Variable interpolation

Getting Input

  • The STDIN predefined filehandle
  • chomp vs. chop


  • Creating and accessing arrays
  • Undefined array items
  • Printing arrays
  • Finding the size of an array
  • Array slices
  • Lists vs. arrays

Week 3

More About Arrays

  • The split and join functions
  • The reverse function
  • Other array functions

Associative Arrays (Hashes)

  • What are hashes?
  • Creating and accessing hashes
  • Hash functions
  • Common uses for hashes

Week 4

Control Structures

  • What is a code block?
  • Conditional operators and expressions
  • True and false
  • If-then-else statements

Week 5


  • Code blocks and labels
  • while loops
  • Loop control
  • for loops
  • foreach loops
  • The “default variable”

Week 6

Reading and writing files

  • Opening and closing filehandles
  • Passing arguments to Perl scripts
  • The die function
  • Different ways to read the contents of a file

Week 7

Talking to the Operating System

  • Using OS commands as input

Regular Expressions

  • Syntax for matching, substitutions and translations
  • Constructing regular expressions

Week 8


  • Reasons for using subroutines
  • CPAN and modules