Learning Perl, 6th Edition

Chapter 1 : Introduction

Questions and Answers
What Does “Perl” Stand For?
How Can I Get Perl?
How Do I Make a Perl Program?
A Whirlwind Tour of Perl
Exercises

Chapter 2 : Scalar Data

Numbers
Strings
Perl’s Built-in Warnings
Scalar Variables
Output with print
The if Control Structure
Getting User Input
The chomp Operator
The while Control Structure
The undef Value
The defined Function
Exercises

Chapter 3 : Lists and Arrays

Accessing Elements of an Array
Special Array Indices
List Literals
List Assignment
Interpolating Arrays into Strings
The foreach Control Structure
Scalar and List Context
in List Context
Exercises

Chapter 4 : Subroutines

Defining a Subroutine
Invoking a Subroutine
Return Values
Arguments
Private Variables in Subroutines
Variable-Length Parameter Lists
Notes on Lexical (my) Variables
The use strict Pragma
The return Operator
Non-Scalar Return Values
Persistent, Private Variables
Exercises

Chapter 5 : Input and Output

Input from Standard Input
Input from the Diamond Operator
The Invocation Arguments
Output to Standard Output
Formatted Output with printf
Filehandles
Opening a Filehandle
Fatal Errors with die
Using Filehandles
Reopening a Standard Filehandle
Output with say
Filehandles in a Scalar
Exercises

Chapter 6 : Hashes

What Is a Hash?
Hash Element Access
Hash Functions
Typical Use of a Hash
The %ENV hash
Exercises

Chapter 7 : In the World of Regular Expressions

What Are Regular Expressions?
Using Simple Patterns
Character Classes
Exercises

Chapter 8 : Matching with Regular Expressions

Matches with m//
Match Modifiers
Anchors
The Binding Operator =~
Interpolating into Patterns
The Match Variables
General Quantifiers
Precedence
A Pattern Test Program
Exercises

Chapter 9 : Processing Text with Regular Expressions

Substitutions with s///
The split Operator
The join Function
m// in List Context
More Powerful Regular Expressions
Exercises

Chapter 10 : More Control Structures

The unless Control Structure
The until Control Structure
Expression Modifiers
The Naked Block Control Structure
The elsif Clause
Autoincrement and Autodecrement
The for Control Structure
Loop Controls
The Conditional Operator ?:
Logical Operators
Exercises

Chapter 11 : Perl Modules

Finding Modules
Installing Modules
Using Simple Modules
Exercises

Chapter 12 : File Tests

File Test Operators
The stat and lstat Functions
The localtime Function
Bitwise Operators
Exercises

Chapter 13 : Directory Operations

Moving Around the Directory Tree
Globbing
An Alternate Syntax for Globbing
Directory Handles
Recursive Directory Listing
Manipulating Files and Directories
Removing Files
Renaming Files
Links and Files
Making and Removing Directories
Modifying Permissions
Changing Ownership
Changing Timestamps
Exercises

Chapter 14 : Strings and Sorting

Finding a Substring with index
Manipulating a Substring with substr
Formatting Data with sprintf
Advanced Sorting
Exercises

Chapter 15 : Smart Matching and given-when

The Smart Match Operator
Smart Match Precedence
The given Statement
Using when with Many Items
Exercises

Chapter 16 : Process Management

The system Function
The Environment Variables
The exec Function
Using Backquotes to Capture Output
External Processes with IPC::System::Simple
Processes as Filehandles
Getting Down and Dirty with Fork
Sending and Receiving Signals
Exercises

Chapter 17 : Some Advanced Perl Techniques

Slices
Trapping Errors
Picking Items from a List with grep
Transforming Items from a List with map
Fancier List Utilities
Exercises

Appendix : Beyond the Llama
Further Documentation
Regular Expressions
Packages
Extending Perl’s Functionality
Databases
Other Operators and Functions
Mathematics
Lists and Arrays
Bits and Pieces
Formats
Networking and IPC
Security
Debugging
Command-Line Options
Built-in Variables
Syntax Extensions

References
Tied Variables
Operator Overloading
Dynamic Loading
Embedding
Converting Other Languages to Perl
Converting find Command Lines to Perl
Command-Line Options in Your Programs
Embedded Documentation
More Ways to Open Filehandles
Threads and Forking
Graphical User Interfaces (GUIs)
And More…

Appendix : A Unicode Primer

Unicode
UTF-8 and Friends
Getting Everyone to Agree
Fancy Characters
Dealing with Unicode in Perl
Further Reading

Colophon