Andrew L. Johnson's new Elements of Programming with Perl is titled in such close proximity to two classic texts--Strunk & White's Elements of Style and Kernighan & Plauger's Elements of Programming Style--as to beg comparison. Best not, and more is the pity.
Perl strives to be both a natural language like English and a structured language like C, but Johnson evidently does not see the value in writing a prescriptive book as the other "Elements of" authors have. Rather, he has written a review of basic Perl for the converted and initiated. But just as an inexperienced carver cannot learn good carving practice with neither a Swiss Army knife nor a chain saw, a neophyte coder cannot learn good programming with a tool that has been called the "Swiss army chain saw" of programming languages. Can anyone learn good programming style from Perl at all? Better we should learn style elsewhere and bring what we already know to the notoriously laissez-faire language.
Perl was developed by linguistic enthusiasts to model a natural language, viz., an idiom consisting of a redundant vocabulary, syntax, and grammar with flexible rules, learnable by example or trial and error. Awk programmers can convert awk scripts to Perl with a utility, then learn Perl by fathoming the output. But where is the centrality of cold, inflexible logic in the design of supportable code? The essential tension in Perl for programming beginners lies between the natural language aspects of Perl (redundancy and flexibility) and the crucial need for discipline in writing programs.
Johnson draws his hoe into this fertile terrain but ends up plowing old ground. He adopts a didactic voice and follows a predictable pedagogical path from programming illiteracy through technical proficiency. He introduces task groups--processing text, lists, input/output, modules, debugging--and stops at introductions to modules and object-oriented code.
The book is studded with examples, exercises, tips, and tricks gleaned from years of "speaking Perl," but it avoids being prescriptive, and his casual advice is sometimes disconcerting. He discusses white space in formatting code, but he breezes past error handling. He teaches recursion without warning that it is a support nightmare. Often he hides behind Perl's creed that "there is more than one way to do it" to avoid advocating what the newbies need: one better-than-average way to do it. Johnson cannot be both advocate of Perl and teacher of beginning programming, though he has tried: had his experiment been bolder, it would deserve wider attention within the Perl and computer science communities. --Peter Leopold
"I found the writing to be extremely interesting. The book covers a broad spectrum of Perl topics.the reader will find himself well-versed in the breadth of Perl. It definitely delivers. If I was to start learning Perl now I would be delighted to make this my first Perl book. It is extremely well-written and informative. I give it my highest recommendation." -- Java Metroplex User Group Web Site
...the best Perl book for neophytes that I've found. ...Make no bones about it, this book is good. Damn good. -- Nathan Torkington, The Perl Journal
If you are seeking a book to help you learn programming... this would be an excellent place to begin. -- Ed's Internet Book Reviews
Johnson has a gift for notations and diagrams, and his depictions of variables, references, and scope are unusually clear... -- Ken Bandes, The Perl Journal
an extremely ambitious ...book that not only introduces programming and its concepts using Perl but that introduces an orderly software... -- Sam Hobbs, The Perl Journal
I tried "Learning Perl" by Randal Schwarz and got bored after about 5 chapters ; too many cutesy references to 60's cartoons and not enough relevant info. Read morePublished on Sept. 26 2001 by Mark
I started a new job after college in the field of bioinformatics and have to learn Perl because of its wide use. Read morePublished on June 12 2001 by Joshua Orvis
I purchased this book, and like most - there are parts of it that are confusing. But, Andrew (the author) provides a forum by which he is there to answer all your questions. Read morePublished on Feb. 3 2001 by Gary M. Gordon
I agree with the statement that this book is a great intermediate step between the Llama (Learning Perl) and the Camel (Programming Perl). Read morePublished on Jan. 26 2001 by Kathleen Brennan
Let me explain ...
I have no programming background other than the fact that I've picked up and tried reading several books on the subject of programming in Perl. Read more
Four or five other reviewers said this book "fills the gaps" between the O'Reilly books (Learning Perl & Programming Perl). Read morePublished on June 13 2000 by Anthony Boyd
I own all the O'Reilly Perl books, and this definitely filled the gap between the Llama and the Camel. Read morePublished on May 16 2000 by Scott K Purcell