Over a decade ago (nearly eternity in Internet Time), Randal Schwartz wrote the first
edition of Learning Perl. In the intervening years, Perl itself has grown
substantially from a "cool" scripting language used primarily by Unix system
administrators to a robust object-oriented programming (OOP) language that runs on
practically every computing platform known to mankind.
Throughout its four editions, Learning Perl remained the same size (about 300 pages)
and continued to cover much of the same material to remain compact and accessible
to the beginning programmer. But there is much more to learn about Perl now than when
that first book was written.
Randal called the first edition of this book Learning Perl Objects, References, and
Modules, and now it's Intermediate Perl, but we like to think of it as just Learning
More Perl.
[*] This is the book that picks up where Learning Perl leaves off. We show
you how to use Perl to write larger programs.
[*] Don't ask why it isn't called that. We must have had 300 emails on the subject.
Okay, ask, since we know you're going to anyway. You never really stop learning Perl,
so Learning More Perl doesn't really tell you much about the book. Our editor chose
the name, which tells you what to expect.
As in Learning Perl, we designed each chapter to be small enough to read in just an
hour or so. Each chapter ends with a series of exercises to help you practice what
you've just learned, and the answers are in the appendix for your reference. And like
Learning Perl, we've developed the material in this book for a teaching environment
and used it in that setting, including for our own use at Stonehenge Consulting
Services, as we conduct on-site and open-enrollment trainings.
You don't have to be a Unix guru, or even a Unix user, to benefit from this book.
Unless otherwise noted, everything in this book applies equally well to Windows
ActivePerl from ActiveState and all other modern implementations of Perl. To use this
book, you just need to be familiar with the material in Learning Perl and have the
ambition to go further.
Structure of This Book
You should read this book from front to back, stopping to do the exercises. Each chapter
builds on preceding chapters, and we'll assume that you know the material from those
chapters as we discuss new topics.
Chapter 1, Introduction
- 2 -
Intermediate Perl
An introduction to the material.
Chapter 2, Intermediate Foundations
Pick up some intermediate Perl skills you'll need for the rest of the book.
Chapter 3, Using Modules
Use Perl's core modules, as well as modules from other people. We're going to
show you how to create your own modules later in the book, but until we do,
you can still use modules you already have.
Chapter 4, Introduction to References
Introduce a level of redirection to allow the same code to operate on different
sets of data.
Chapter 5, References and Scoping
Learn how Perl manages to keep track of pointers to data, and an introduction
to anonymous data structures and autovivification.
Chapter 6, Manipulating Complex Data Structures
Create, access, and print arbitrarily deep and nested data structures,
including arrays of arrays and hashes of hashes.
Chapter 7, Subroutine References
Capture behavior as an anonymous subroutine that you create dynamically and
execute later.
Chapter 8, Filehandle References
Store filehandles in scalar variables that you can easily pass around your
program or store in data structures.
Chapter 9, Practical Reference Tricks
Sorting complex operations, the Schwartzian Transform, and working with
recursively defined data.
Chapter 10, Building Larger Programs
Build larger programs by separating code into separate files and namespaces.
Chapter 11, Introduction to Objects
- 3 -
Intermediate Perl
Work with classes, method calls, inheritance, and overriding.
Chapter 12, Objects with Data
Add per-instance data, including constructors, getters, and setters.
Chapter 13, Object Destruction
Add behavior to an object that is going away, including object persistence.
Chapter 14, Some Advanced Object Topics
Use multiple inheritance, automatic methods, and references to filehandles.
Chapter 15, Exporter
How use works, how we can decide what to export, and how we can create our own
import routines.
Chapter 16, Writing a Distribution
Package a module for sharing, including portable installation instructions.
Chapter 17, Essential Testing
Test your code to ensure it does what you want it to do.
Chapter 18, Advanced Testing
Test complex aspects of code and meta-code things such as documentation and
test coverage.
Chapter 19, Contributing to CPAN
Share your work with the world by uploading it to CPAN.
Appendix, Answers to Exercises
Where to go to get answers.
Conventions Used in This Book
The following typographic conventions are used in this book:
Constant width
- 4 -
Intermediate Perl
Used for function names, module names, filenames, environment variables, code
snippets, and other literal text
Italics
Used for emphasis and for new terms where they are defined