Related Subjects: Author Index
Book reviews for "Allen,_Donald_R." sorted by average review score:

Perl: A Beginner's Guide
Published in Paperback by McGraw-Hill Osborne Media (26 December, 2000)
Authors: R. Allen Wyke and Donald B. Thomas
Amazon base price: $20.99
List price: $29.99 (that's 30% off!)
Used price: $0.88
Buy one from zShops for: $9.25
Average review score:

Poor Examples, and Full of Typos
I am always on the lookout for Perl books from sources other than O'Reilly & Associates. Since Larry Wall works for them, they are The Authorities on the language, no question. But I've often felt that they know the language perhaps too well; they are so familiar with its subtleties that they don't do as good a job of explaining the basics as they might.

I consider myself to be beyond the novice stage in Perl programming, but far from an expert, so I was very interested in what Perl: A Beginner's Guide had to say.

It is a maddening book. I really would like to say something positive about it, but it is so full of typos, and so haphazardly put together, that I just can't.

The slipshod feeling shows right from the beginning. After explaining how to run the traditional "Hello, World" program, the authors explain the chomp() function, which removes a newline character from the end of an input line. We're then given a Note, with a box around it, to clear up a key point:

"Perl also has a function called chomp(), which removes the last character of a string. Unlike chomp(), chomp() removes any character, no matter what it is, whereas chomp() only remove the character if it's a newline character. When you only need to remove a trailing newline character, you should always use chomp(), because it's safer."

Got that?

Sure, you know that they're talking about chop() versus chomp(), and this is only a typo. But how long will it take the beginner who's reading this book to figure that out?

On page 59 the authors introduce Perl's comparison operators, including the = = operator inherited from C, and the source of much confusion among novices and experts alike. Twenty-three pages later we finally get an example of one of these operators, and it's wrong:

$a = 20;
if( $a = 15){
print "a is equal to 15\n";
}
else....

This example, of course, will print "a is equal to 15" until the cows come home. Or until the reader throws the book aside in disgust.

I could go on, but you get the point. The problem is not only that the book is full of small errors like the ones I've cited; the problem is that their presence makes you mistrust everything the book says, even when it's correct.

A more subtle issue, and one that's harder to get a handle on, is the fact that the book's examples are, for the most part, trivial. You get the feeling that the authors, faced with the need to come up with an example to illustrate the feature of the language they were discussing at the moment, just wrote down whatever popped into their heads. The examples illustrate the point, but they don't take on the more important job of helping the reader to begin to think like a Perl programmer.

For example, in the section on regular expressions, there are a series of examples that use this syntax:

if ($result = $string1 =~ /Hello/){

This example is used over and over, and yes, it works. But, since we never make use of $result anywhere else, a Perl programmer would simplify this to:

if ($string1 =~ /Hello/){

Moreover, in the real world, you'd be more likely to see something like:

if (/Hello/){

-- which makes use of the implied $_ variable. Although an awareness and understanding of the many $x variables are key to understanding Perl's often-cryptic syntax, references to them are sprinkled haphazardly throughout the book; nowhere are they laid out in a logical, orderly fashion.

As I said at the beginning, I really would like to like this book. The authors obviously have gone out of their way to try to write a manual that makes Perl approachable for beginners. What they've got here is a good first draft; but it's not ready for publication.

good bad and ugly
good: very simple treatment of the perl language. you can learn to program some relatively simple stuff if you haven't done any programming in 15 years (like me).

bad: the book is ATROCIOUSLY edited. i find at least one significantly confusing typo every few pages. if you look on the bright side, you can use these mistakes to hone your skills on finding scripting errors, but in general, it seems to reflect a lack of care in putting the book together.

ugly: this is for an absolute beginner who's willing to work through all of the typos. you will have to shell out additional $$ to begin to use perl in any productive manner.

A gentle introduction to Perl
For Perl beginners, this book is significantly more readable than the O'Reilly texts -- I would like to have seen even more exercises throughout, though.

Overall, a good springboard to a more in-depth text, such as the Wrox title "Beginning Perl". I deducted one point for a few minor (but annoying) typographical errors - this book needed one more pass by the technical editor. C programmers will quickly recognize the typos, but these could confuse some beginners.

Also, this book covers the Perl DBI using the PostgreSQL database. Installing PostgreSQL is awkward on Windows, yet many beginning Perl developers probably use Windows. The Wrox book "Beginning Perl" makes the more logical choice of using the MySQL database, which is simpler to install and use on Windows (and also runs on most Linux/Unix platforms).


Barefoot in the Church
Published in Hardcover by John Knox Pr (July, 1972)
Author: Donald R., Allen
Amazon base price: $6.95
Used price: $2.17
Average review score:
No reviews found.

Dana Thomas House
Published in Paperback by Dana Thomas House Foundation (June, 1992)
Authors: James R. Allen, Donald Parker Hallmark, and Richard S. Taylor
Amazon base price: $10.00
Collectible price: $74.73
Average review score:
No reviews found.

Related Subjects: Author Index

Reviews are from readers at Amazon.com. To add a review, follow the Amazon buy link above.