Laura Lemay is a member of the gregarious, brightly colored species of computer-book author known as tutorialis prolificus. Although she has been spotted writing in the wild for numerous years, more public sightings have occurred frequently since 1995, including several versions of Sams Teach Yourself HTML, Sams Teach Yourself Java in 21 Days, and The Official Marimba Guide to Castanet.
When not writing books, her primary habitat is in Northern California. Should you encounter her in person, do not make any sudden movements. Further field notes may be found at http://www.lne.com/lemay/.
Rafe Colburn is a programmer and author working in North Carolina. His previous books include Sams Teach Yourself CGI in 24 Hours and Special Edition Using SQL. He also has a Web site at http://rc3.org that he updates often, and can be reached at firstname.lastname@example.org.
(NOTE: Each chapter concludes with a Summary, Q&A, Workshop and Answers.
WEEK 1. GETTING STARTED. Day 1. An Introduction to Perl.
What Is Perl and Where Did It Come From? Why Learn Perl? Getting Started Programming in Perl. An Example: The Ubiquitous Hello World. Another Example: Create Hello World As a Script. Another Example: Echo. A Third Example: The Cookie Monster. Going Deeper.Day 2. Working with Strings and Numbers (Scalar Data).
Scalar Data and Scalar Variables. Constructing Perl Scripts. Arithmetic Operators. One-Liners: Simple Calculator. An Example: Converting Fahrenheit to Celsius. Operators for Tests and Comparisons. Another Example: More Cookies. Going Deeper.Day 3. More Scalar Data and Operators.
Assignment Operators. Increment and Decrement Operators. String Concatenation and Repetition. Operator Precedence and Associativity. Using Patterns to Match Digits. An Example: Simple Statistics. Input and Output. Another Example: Stocks. A Note About Using Functions. Going Deeper.Day 4. Working with Lists and Arrays.
List Data and Variables. Defining and Using Lists and Arrays. An Example: More Stats. List and Scalar Context. Input, Output, and Lists. Going Deeper.Day 5. Working with Hashes.
Hashes Versus Arrays and Lists. Defining and Using Hashes. An Example: Frequencies in the Statistics Program. Another Example: Alphabetical Lists of Names. A Few More Patterns. Yet Another Example: Stock Price Converter. Going Deeper.Day 6. Conditionals and Loops.
Complex Statements and Blocks. Conditionals. while Loops. An Example: Pick a Number. Iteration with foreach and for Loops. Controlling Loops. Using the $_ (default) Variable. Input from Files with while Loops and <>. Going Deeper.Day 7. Exploring a Few Longer Examples.
Statistics with a Better Histogram. A Number Speller. Text-to-HTML Converter Script.
WEEK 2. DOING MORE. Day 8. Manipulating Lists and Strings.
Array and Hash Slices. Sorting Lists. Searching. An Example: More Names. Modifying List Elements. Other Ways to Mess with Lists. Manipulating Strings. Going Deeper.Day 9. Pattern Matching with Regular Expressions.
The Whys and Wherefores of Pattern Matching. Pattern Matching Operators and Expressions. Simple Patterns. Matching Groups of Characters. Matching Multiple Instances of Characters. An Example: A Guessing Program. More About Building Patterns. Another Example: Counting. Pattern Precedence. Going Deeper.Day 10. Doing More with Regular Expressions.
Extracting Matches. An Example: Extracting Attributes from HTML Tags. Using Patterns for Search and Replace. More About split. Matching Patterns over Multiple Lines. A Summary of Options and Escapes. An Example: Image Extractor. Going Deeper.Day 11. Creating and Using Subroutines.
Subroutines Versus Functions. Defining and Calling Basic Subroutines. An Example: Son of Stats. Returning Values from Subroutines. Using Local Variables in Subroutines. Passing Values into Subroutines. Subroutines and Context. Another Example: Stats with a Menu. Going Deeper.Day 12. Debugging Perl.
Using the Debugger: A Simple Example. Starting and Running the Debugger. Perl Debugger Command Reference. Using a Graphical Debugger. Going Deeper.Day 13. Scope, Modules, and Importing Code.
Global Variables and Packages. Local Scope and Variables. Using Perl Modules. An Example: Using the Text::Wrap Module. Using Modules from CPAN (The Comprehensive Perl Archive Network). Going Deeper.Day 14. Exploring a Few Longer Examples.
A Searchable Address Book (address.pl). A Web Log Processor (weblog.pl).
WEEK 3. ADVANCED PERL. Day 15. Working with Files and I/O.
Input and Output with File Handles. An Example: Extract Subjects and Save Them. File Tests. A File Test Example. Working with @ARGV and Script Arguments. Another Example. Going Deeper.Day 16. Using Perl for CGI Scripting.
Before You Start. How CGI Works. Building a CGI Script, From Form to Response. Testing the Script. Developing CGI Scripts with CGI.pm. An Example: Survey. Going Deeper.Day 17. Managing Files and Directories.
Managing Files. Managing and Navigating Directories. An Example: Creating Links. Going Deeper.Day 18. Perl and the Operating System.
Unix Features in Perl. Perl for Windows. Going Deeper.Day 19. Working with References.
What Is a Reference? The Basics: A General Overview of How to Use References. Using References with Subroutine Arguments and Return Values. Other Ways of Using References. Creating Nested Data Structures with References. Building Data Structures with Existing Data. Accessing Elements in Nested Data Structures. Another Example: A Database of Artists and Their Works. Avoiding the Use of References. Going Deeper.Day 20. Odds and Ends.
Perl One-Liners. Object-Oriented Programming. An Example: Using Object-Oriented Modules. Sockets. POD (Plain Old Documentation) Files. Evaluating Code On-the-Fly. Commonly Used Modules. Creating International Perl Scripts. Script Security with Taint Checking. PerlScript. What's Coming in Perl 6. Going Deeper.Day 21. Exploring a Few Longer Examples.
A Stock Portfolio Manager. A Web-Based To Do List (todolist.pl).
APPENDIXES. Appendix A. Perl Functions.
For More Information. Perl Functions, in Alphabetical Order.Appendix B. Installing Perl on a Unix System.
Do You Need to Install Perl? Obtaining Perl. Extracting and Compiling Perl. For More Information.Appendix C. Installing Perl for Windows.
Downloading Perl for Windows. Installing Perl for Windows. Running Perl for Windows. Downloading the Perl Source Code. Getting More Information.Index.