This book is a fine introduction to Perl for experienced C, C++, and Java programmers. Perl has plenty of sidebars that explain the differences between Perl and these other languages and how Perl can help you overcome the limitations of these languages.
Chapman starts off with language basics, but instead of listing all the basic constructs and introducing the obligatory "Hello, world!" program, he introduces you to what he terms "programming idioms." This thought-provoking approach gradually eases you into learning the basic Perl constructs without presenting you with dry examples and tables of potentially confusing information. By the time you realize what's going on, it's too late: you've already learned something. The book has some great chapters, and it even describes how to scope variables correctly (apparently no mean feat, since few tutorials get it right).
The advanced chapters on references and objects really shine. Examples of objects lead you through a logical progression from project visualization to finished product. The author then assists you in creating a set of modules that calculate taxes for a small town, where different rates exist for business and residential buildings. Here, the guide introduces and explains several key concepts for Perl object manipulation.
The examples in the book make sense and, best of all, they are original and have real-world relevance. When explaining pack() and unpack(), the author creates a wonderful example of parsing the headers of a MIDI file to gather track data and then process the individual tracks of the file. While the book does not pack the heft of some Perl tomes (it only contains 273 pages), it's crammed with great examples and ideas. In short, Perl: The Programmer's Companionis a great addition to any Perl programmer's library.