Slashdot Mirror


Programming Perl, 3rd Edition

Chronic reviewer chromatic writes again, this time with a review of the newest iteration of what is probably the emblematic Perl book, the O'Reilly camel book. Read on to see how it stacks up to earlier versions of that work, and whether your Perl skills would benefit from reading through it.

Programming Perl (third edition) author Larry Wall, Tom Christiansen, & Jon Orwant pages 1067 publisher O'Reilly & Associates rating 9.5 reviewer chromatic ISBN 0-596-0027-8 summary The definitive guide to the Perl language, updated for 5.6.1.

The Scoop Longtime Perl fans know Programming Perl as the Camel, because of the cover animal. With the first edition in 1991, Perl programmers gained not only a charmingly appropriate mascot, but the ultimate language reference. True to form, this Camel's grown with the language. In the four years since the last release, it's increased in size by 67%.

Everything you liked about previous editions has returned, in one form or another. Additionally, this third edition covers the largest changes made for Perl 5.6 (actually 5.6.1, as the book's ahead of the current stable release by a bit) -- Unicode, threading, and more Perl guts.

While the previous editions were exceptionally well-written references, they were also aimed squarely at experienced programmers. This edition pushes back the starting blocks somewhat, providing a gentler introduction to the world of Perl. The wealth of new information is staggering, but as you'd expect from the luminous authors, even the core language reference is highly readable and entertaining.

What's to Like? Logically, the book is divided into five main sections. (Gone are the massive 80-page chapters of the second edition). The first section, one chapter, gives a good overview of Perl, as a language and a philosophy. It includes a quick introduction. The second section gives the language's gory details, covering just about everything you would need to know. It's arranged in terms of ascending complexity. The enhanced, extended, and improved regular expression chapter stands out as the best member of this group.

The third section discusses Perl as technology. Here's where Unicode comes in, as well as the internals of Perl (through the internal compilation process, using the debugger, or using XS to extend Perl with C code). Everything here is quite good. Expectably dry subjects like Unicode or threading are readable and even a little entertaining. If you're not convinced, you can skip around and still learn quite a bit.

The fourth section is devoted to Perl as culture, with discussions about portability, security, good practices, documentation, CPAN, and a bit of poetry. The security chapter is quite good, but left me wanting more information. Any chapter here is accessible if you've made it through the second section, so feel free to pick and choose what you need to know.

Rounding up the spare bits is the reference section. Not only will you find descriptions of the special variables, built-in functions, and standard library, but the organization and presentation of these descriptions has improved. Functions have little annotations listing which magic variables they set, possible exceptions they raise, and the like. That accounts for 150 pages of the overall goodness. Don't skip the glossary at the end, if you're confused or looking for amusement.

What's to Consider? While it's a temporary conundrum, it's a little odd to read about features that aren't quite implemented yet. This is most noticeable in the Unicode discussions and the chapter on threading. Occasionally, the authors will describe a feature and then admit that the specifics will likely change. (Have a look at the documentation.) Granted, the bulk of the language is mature and stable, and the definitive guide can't very well get by with ignoring major features, but it reads a little oddly.

The intended audience is still the serious Perl programmer. Dabblers and casual learners will find enlightenment and instruction. Realize, though, that while it's easier to start your journey here, absolute beginners would do well to explore a Learning Perl or Elements of Programming with Perl first. People who've programmed before (beyond dabbling with VB, or doing mouseovers in Web pages) should have little difficulty picking up the Perl language and mindset.

The only other possible improvement that comes to mind is expanding certain chapters. As noted before, there's more to say about security and efficiency. It would also be nice to have a chapter on common Perl idioms one might find in EFNet #Perl or at Perl Monks, or the latest Perl Mongers meeting. (Half of the fun is discovering and sharing new tricks and shortcuts.)

The Summary Part of being a good programmer is knowing where to turn for accurate and useful information. This is the place for all things Perl. If you use Perl regularly, put the new Camel on your shelf. Table of Contents
  1. Overview
    1. An Overview of Perl
  2. The Gory Details
    1. Bits and Pieces
    2. Unary and Binary Operators
    3. Statements and Declarations
    4. Pattern Matching
    5. Subroutines
    6. Formats
    7. References
    8. Data Structures
    9. Packages
    10. Modules
    11. Objects
    12. Overloading
    13. Tied Variables
  3. Perl as Technology
    1. Unicode
    2. Interprocess Communication
    3. Threads
    4. Compiling
    5. The Command-Line Interface
    6. The Perl Debugger
    7. Internals and Externals
  4. Perl as Culture
    1. CPAN
    2. Security
    3. Common Practices
    4. Portable Perl
    5. Plain Old Documentation
    6. Perl Culture
  5. Reference Material
    1. Special Names
    2. Functions
    3. The Standard Perl Library
    4. Pragmatic Modules
    5. Standard Modules
    6. Diagnostic Messages

    Glossary
    Index

You can purchase this book at ThinkGeek.

1 of 99 comments (clear)

  1. Books on moving targets by Masem · · Score: 4
    I know it's been talked about before, but it seems odd to try to write books that are aimed at moving feature sets, such as perl, HTML, etc, without some mechanism for the user to get the next version or three at a free or reduced cost. (Mind you, O'Reilly books are generally inexpensive, but this is true for all publishers). Certainly has having used the 1st edition of Camel, I know that perl has changed a lot in 5 or so years, and much of that first book, while not depriciated, doesn't fully cover what I need to know nowadays for perl hacking. I've been hestitent to buy the more recent editions because I see the same problem happening in another 2 or 3 years. As this review points out, some of the features on Unicode and threading could be wrong when 5.6.1 is released, making those pages of the book useless.

    While electronic books can easily fix this problem, that's not the solution when you need to look at paper copies, whether at the terminal or on the toilet. Maybe there should be some way to 'register' the books, such that when the n+1(th) edition comes out, you can get it for a substanially less cost, because your initial purchase of the nth edition helped to make the n+1(th) edition possible. Or one could send in the cover of the nth edition and a S&H charge to get a copy of the new book. Or something along these lines.

    If any computer book publishing company could do this, I would expect ORA to be the first to try such, given their helpfulness in the past and present. But with many standard 'things' moving so fast (XML, HTML, Perl, Python, etc), we need a some book upgrade mechanism in place ASAP.

    --
    "Pinky, you've left the lens cap of your mind on again." - P&TB
    "I can see my house from here!" - ST: