If you were asked to name some publishers of Perl books, Wrox wouldn't be the first name that springs to mind. There's O'Reilly, of course, and you could add Manning and Addison Wesley to the list. But Wrox? The author of Beginning Perl, Simon Cozens, is, on the other hand, a noted Perl hacker who is currently involved in the development of Perl 6. As a relative newcomer to the language, the main question on my mind as I began reading this book was: could Simon, like Marvin in The Hitchhiker's Guide to the Galaxy, think down to my level without getting a headache?

The first thing that strikes one when reading this book is the standard of editing and typesetting. Frankly, it's poor. It gets off to a bad start (the first word in chapter 1 should have been "Virtually", but the "r" has gone missing), and doesn't get much better. There are an amazing 28 people credited with having worked on this book, but even their combined efforts couldn't stop Apache being spelt with two p's, the pi symbol being reduced to a blob in several places, a chunk of the index pages being misnumbered, and various other mishaps.

The next thing that stands out is that the book seems unsure of its target audience. The back cover notes that it is aimed at "those new to programming who want to learn with Perl" and indeed, Beginning Perl does kick off with such basic questions as "What is programming anyway?" and "How do computers see number and letters?" However, in chapter 7, we read: "Now if you're familiar with (C) pointers, please try and put the knowledge aside..." This makes no sense. How would someone who needs to be told what programming is in chapter 1 suddenly have acquired a knowledge of C pointers by chapter 7?

Another confusing example: in chapter 11, on OOP, Simon advises us to use the Perl my $galileo = Person->new; syntax and avoid the C++-style my $galileo = new Person; but then ignores his own advice in the CGI chapter. Again, this sort of thing should have been caught by an editor.

The book does have its good points. The basics are covered reasonably well, and I liked the chessboard example that Simon uses to demonstrate references (although even here the pieces are in the wrong order). Later, when we get to downloading modules from CPAN, writing CGI programs and working with a mySQL database, the step-by-step instructions are clear and helpful.

We'll deduct more points, however, for not even mentioning a certain monastery in the "useful websites" section, and for the large amount of padding. The functions reference and the list of standard modules I can just about live with, but by the time we get to the ASCII character set and the GPL, it feels like being strapped to a chair and being forced to listen to Vogon poetry -- you just want to scream "Stop!"

To sum up: somewhere in here, there is a decent introduction to Perl struggling to get out. In the hands of a different publisher, and with a good editor, this might have been a good book. As it stands, however, it is difficult to escape the feeling that the author has been rather let down by Wrox. The usual book recommendations for learning Perl are merlyn and Tom Phoenix's Llama for those who already program, and Andrew L Johnson's Elements of Programming with Perl for those who, like myself, are new to the whole thing. There's probably room in the market for another good introduction to Perl, but Beginning Perl is not it. Perhaps an improved second edition (if Wrox are planning one) might be.


In reply to Beginning Perl by mooseboy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.