PSDT Main Pageblank

Reviewing the New Camel III
by Peter Scott

Programming Perl, 3rd edition
Larry Wall, Tom Christiansen and Jon Orwant
O'Reilly, 2000
1066pp
ISBN 
0-596-00027-8

Several years ago I decided that I really should read the whole of "Programming Perl", without skipping the parts I didn't understand. That task just got a whole lot harder with the advent of the third edition of the Camel, weighing in at amost twice the size of its predecessor, but after a few months I finally finished it.

With the third edition, the Camel remains indispensable to the serious Perl hacker, if a little more likely to cause herniation. It occupies a curious ecological niche probably best described as 'bible': it's not a tutorial, but it's not as rigorous or methodical as one would expect of a reference work. This, of course, fits right in with Perl culture.

If you were hoping for a specification of the Perl language, keep hoping (one of these days I may start such a thing). There isn't one. The Camel comes closer than anything else short of the source to nailing down precisely what Perl does, but this is in many cases expressed in single sentences carefully worded to make key points. Keep those eyes peeled.

Nowhere is the Perl Way more in evidence than the early chapters, where readers of other computer language books might expect rigorous definitions of terms honed to eliminate ambiguity. Perl thrives on managing ambiguity, since people are ambiguous; it just does a good job of it. So in many places where you'd expect to see a glossary of definitions building upon one another, you get instead a chatty discourse delving into everything from linguistics to interpersonal relationships to make its point. We may be entering an era where the most advanced software we create needs to be based upon something that is able to make good guesses at what we mean, and Perl excels at this sort of hand-holding. There are people who don't like their hand being held; for them, there's Python, or Ruby, or Java, or...

The correspondence between the Camel and the POD that comes with Perl remains high, but not as high as it was before; not only are there many more sections in the Camel that aren't in the POD (whereas only parts of Chapter 8 in Camel II were not in the POD, many parts of sections 3 and 4 of Camel III are exclusive), but there are curious, small differences (fortunately seldom material) between corresponding sections (check out a few entries from the 5.6.0 perlfunc to see what I mean).

Camel III is worth buying for section 3 alone: "Perl as Technology," including valuable information on the nascent Unicode handling and how the Perl compiler works. This is absolutely invaluable for anyone seeking to extend Perl in some way.

Don't toss your second edition just yet; it contains information on some standard modules that there wasn't room for in Camel III. (Although who knows how dated it is by now.) Make sure you don't get a first printing of Camel III, because it was rushed to press a bit for the Perl Conference and contains more errata than one would prefer (like the swapping of the thumb indices for Pragmata and Modules).

For fun, see if you can guess which author wrote the part you're looking at. For additional fun, see if you can spot the places where Tom Christiansen slipped snide remarks about non-Unix systems past his co-authors.

About | Services | News | Tips | Publications | Contact

Top

© Pacific Systems Design Technologies
Revised 9/19/01