92 of 94 people found the following review helpful
on January 10, 2002
If you're like me, and you're shopping for a book, you immediately start reading the negative reviews and work upwards. So I started reading the reviews and read through them all, bought the book despite the many negative, and frankly, snippish comments made by many reviewers and decided that I need to respond.
Many say that the examples are convoluted, or that he focuses on obscure language references. One says the book starts quickly with a discussion of the splice function. The first mention of splice is on page 355, which I certainly don't define as 'quickly'....
Others say that there are no examples, or they are not explained clearly, but there's a short sample program right on page 18, and then 4 pages are devoted to analyzing the program and how it works. Further review through the book shows many small examples, especially in the sections that outline the core functions of Perl, and the core modules of Perl.
Others come here and criticize Perl the language, and use this as a platform for their own advocacy of other languages. This is just silly. If you're interested in Perl, or you've been using Perl and you want to know more, buy this book. In the universe of computer programming, every language choice you make is controversial, and subject to debate, and just because some reviewers do not like Perl the language, it does not mitigate the quality of this book.
That all being said, and debunking the frankly lousy reviews, I'll caution that this is NOT for beginning programmers, or people with limited technical knowledge. O'Reilly knows this, and anyone who has read this book should know this too. There is a book called 'Beginning Perl', also from O'Reilly, and written by one of the other top minds in Perl. It is easy to follow, provides many concrete examples and is where a beginning programer should begin. If you have a technical background, you will probably be able to start with this book, though Learning Perl is still worth reading.
What this book provides is not only an exhaustive guide to the language of Perl, and it's abilities, but also insight into it's design, the decisions of the creator of the language (Larry Wall, the main author of the book created Perl), and the major philosophy behind Perl.
This is a valuable reference and worth having.
This is the book that I turn to when I have Perl questions.
And this book is worth every penny I spent to get it.
169 of 185 people found the following review helpful
on September 29, 2000
I grew up teething on the trusty C=64, then went on to Q-Basic,Fortran-77 (I'm a mechanical engineer by schooling), and eventuallydabbled quite a bit with ANSI C. Except for a quarter of Fortran incollege, I've always been self-taught for computers and programming.I thought that this book would be the place to start my 'career' inPerl. Since it is the 'hot new thing' (although not that new) and Iam interested in Linux and the Apache web server, learning Perl seemedto be the natural extension. And on almost every FAQ, web site, etcetera about Perl, all speak of 'THE CAMEL' as being the bible.
BOYWAS I WRONG! I am not NEARLY smart enough to learn Perl straightfrom the Camel's mouth. But that doesn't mean that this is a terriblebook by any means, not at all. But I quickly jumped back on line hereat Amazon and picked up 'the Llama', aka Learning Perl, 2d Edition.Here's my path to success, being that I wasn't smart enough to learnfrom this book by itself! hahaha...
(1) Read 'Learning Perl'straight through at a leisurely pace. Just get a feel for thelanguage and syntax. (2) Download and install Perl... (3) Read'Learning Perl' a second time, this time not continuing until yousuccessfully complete the exercises at the end of each chapter. (4)Read 'Programming Perl', and when you get to a part that you havetrouble with, refer back to the lessons and examples in theLlama.
This worked quite well for me, and using the Llama before ANDin conjunction with the Camel seemed to enhance the meaning for me ofboth. My newest endeavor is to work through 'CGI Programming withPerl', another O'Reilly animal book ('the Mouse'? ).
Overall, thisis what I would term a 'readable reference'. While it doesn't havethe tutorial structure of the Llama or other learner's books, it isn'tquite as sticky as reading a pure reference guide. It's a wellthought out book for those with a half-way solid grasp of Perl and areready to start tackling some intermediate to higher level programminggoals. END
137 of 165 people found the following review helpful
on May 9, 2001
The book is definetely written for those who at least have some (or maybe a little more than just "some") programming background, and willing to learn Perl from the author of the language.
I read the first edition of the book, which was about 200 pages, or something in that range, which filled my mind with nothing but questions. Current edition, however, could answer to all of those questions (well, almost). Of course, to make it answer them I had to re-read the book four times. But none of the books I currently own (and I own quite a few) could've taken me to the innards of the language so deep no matter how many times I had read them. So the book is of value.
The Camel book, especially, does a great job on Regular Expressions and pattern matching. If you want to learn RegEx of perl in very details, you definitely need listen to the author of Perl. "Mastering Regular Expressions" by Jeffrey Friedl is also a good choise, but doesn't include the latest updates.
Formats aren't covered very well though. So you might consider "The Lama book" for that ("Learning Perl"). Still, none of the books can tell you about the innards of the Perl in so much detail overall than "Programming Perl".
OOP is also toched upon in the book. Since purpose of the author is not to preach you OO lingo (but plain Perl), you'll treat that part just as an intorduction to OOP and consider "Object Oriented perl" by Damian Convey as the next text book.
I found chpater 14, "Tied variables" very helpfull though. It might remind you of DBM/Berkley DB, through the syntax
tie my %db, 'AnyDBM_File', 'my_file', O_CREAT|O_RDWR, 0664;
but unfortunately it's not about DBM at all. It is about how the "tie" function works, and teaches you how to create your own classes for implementing with "tie". After that chapter, I even had to update some of my classes and saved lots of time for their updates.
"Compiling", chapter 18 ,is a must read chapter for those who "live & breath" with Perl (like me, may be ?).
I don't want you to buy the book unless you have a good understanding of Programming or/and have knowledge of some programming languages. Otherwise, it won't help at all.
If your purpose is just to get started with Web applications, go for "CGI progamming 101" by Jacqueline Hamilton. It is a good start. But if you want to go even deeper, "Learning Perl" and "Perl Coookbook" is the next choise. Keep the "The Camel" book as the next (but definitely, not the last).
18 of 19 people found the following review helpful
on July 16, 2001
I regard this book as the Perl equivalent of Stroustrup's The C++ Programming Language. Simply put, it is the bible for the language: long, thorough, authoratative, and indulging in a fair amount of proselytizing. (The preaching becomes almost amusing when it tries to portray Perl's implementation of OOP as anything but ugly.) If nothing else, the authors' enthusiasm for the language shines through. Along with a somewhat witty writing style, it makes for good reading.
I have to disagree with those warning Perl newbies away from this book. I must admit that I did read Learning Perl first, as a result of all these cautionary tales. However, I felt that I learning nothing useful from the Llama, and I didn't even write my first Perl program until I began the Camel. Reading Programming Perl was very satisfying in that it portrayed the language in a no-nonsense manner that allowed me at last to see all that Learning Perl tried so hard to hide. Certainly, I don't recommend Programming Perl to those who are programming for the first time. However, experienced C programmers and computer scientists will probably pick up Perl pretty readily from this book. If nothing else, at least try Programming Perl first. You'll certainly need it eventually, since Learning Perl is not sufficient for anything but the most surface understanding of how to use the language. (The authors at least address the reader as somebody who knows nothing about Perl.)
The bottom line: if you're a programmer, you should have this book. Perl is just too useful a language not to know.
19 of 21 people found the following review helpful
on May 30, 2002
I bought this book because it was recommended to me for learning Perl. I have never used Perl before, and started reading from the beginning. It is well written and quite readable, but I started to get lost after 60 or so pages. (Note that I do have plenty of experience in other languages, but that was not really helpful to me in deciphering the terminology in this book.) It was getting into complicated stuff without really showing how to write simple test programs, which is what I really needed. In fact, it gives rather few code examples, and those that are given are usually no more than 3 lines, so the reader doesn't get a good idea of how to put together a whole program.
However, as I said, it is quite readable, and very informative. It may be better suited to someone who already knows how to program in Perl and wants to learn more. In summary, my recommendation:
Buy this book if you:
-are fanatical about Perl and need to know everything about it
-are very smart/experienced in programming, particularly with prior experience in Perl
-know how to code in Perl already but want a handy reference to the minute details in it
Do not buy this book if you:
-are not very good/experienced at programming
-only need to know the basics
-will only be using Perl for a short time
15 of 16 people found the following review helpful
on November 11, 2000
Why step 3? Step 1, Learning Perl; Step 2, CGI programming with Perl; and this is three. A perfect book for explaining the how and why of what you've learned along the way, yet too deep for the very beginner. I read the chapter on regular expressions first, and now my regexps are much cleaner and more powerful. Then I went to chapter one and read the rest of the book to the end. You can program just fine without this book, but you'll be working too hard. I've cut my programs down in size, while making them much more readable (and faster too!). So do yourself a favor and buy this mug. You'll be glad you did. It's such a wealth of knowledge, and it rubs off on you.
25 of 29 people found the following review helpful
on October 20, 2000
Finally we have the third edition of this famous Perl book. At the time of the Perl 4 book, there was nearly no alternative. Now we are flooded by Perl books and many are great. Nevertheless, this one remains the "standard" Perl guide from the master himself. They don't comment on why Randal Schwartz left the authoring team and has been replaced by Jon Orwant. The book has now over 1000 pages and is printed on good quality paper. The organization of the chapters is much better. Since Perl can do so many things, one book is still not enough to cover each topic extensively enough. I wished some more explanations about recursive regular expressions, for instance. But on the other hand they know this and therefore recommend the online documentation (perldoc ...). Some examles in the book are somewhat tricky, so that one has to use the brains. Whether this is good or bad must be judged individually. The parts and chapters are now as follows:
Part I: Overview. 1.) An Overview of Perl, Part II: The Gory Details, 2.) Bits and Pieces, 3.) Uniray and binary operators, 4.) Statements and Declarations, 5.) Pattern Matching, 6.) Subroutines, 7.) Formats, 8.) References, 9.) Data Structures, 10.) Packages, 11.) Modules, 12.) Objects, 13.) Overloading, 14.) Tied Variables, Part III: Perl as Technology, 15.) Unicode, 16.) Interprocess Communication, 17.) Threads, 18.) Compiling, 19.) The Command-Line Interface, 20.) The Perl Debugger, 21.) Internals and Externals, Part IV: Perl as Culture, 22.) CPAN, 23.) Security 24.) Common Practices, 25.) Portable Perl, 26.) Plaon Old Documentation, 27.) Perl Culture, Part V: Reference Manual, 28.) Special Names, 29. Functions, 30.) The Standard Perl Library, 31.) Pragmatic Modules, 32.) Standard Modules, 33.) Diagnostic Messages.
10 of 10 people found the following review helpful
on March 1, 2001
Programing Perl is good book. Of course, it assumes that you already have a good knowledge of perl and it is an excellent reference. Each time I read a chapter, I learn a bit more about the "why" & "how" perl works.
I would not recommend this book for a perl newbie UNLESS it was to be used a reference only AND as a compliment to the famous "Learning Perl" book. The first time I read the first edition of this book (programming perl), I nearly cried because I was bombarded with so much detail that it confused and baffled me and I nearly never picked up perl. However, after reading the "learning Perl" first, and then coming back to this book, I appreciated it soooo much more and loved the detail that had initially confused & frustrated me.
I still have the first edition of the book and in comparing it the third edition (I have never bought or read the 2nd edition), I would say that the third edition is generally an improvement.
I miss Randal Schwartz humorous style that made reading the first editon fun. Tom & Jon's style is different and they immediately drill down to the facts in a no-nonsense method that gives you a much better understanding of perl. If you have a background in programming "c", you will appreciated the details that they spill accross the page. I think I have improved my "c" programming skills just from reading their analysis.
I would recommend this book to any harden perl coder who wants to take the time to study it throughly (it is not light reading unless you are already a perl genuis). However, to someone learning perl for the first time, the Llama book is a better place to start.
26 of 32 people found the following review helpful
on July 1, 2001
To be very short about it: Perl is a great language for some things (small scripts), but a bad language for other things (systems programming). In this book, Larry Wall tries very hard to convince you that Perl is the programming language for everyone -- that it does everything. It doesn't.
If you read this book with the knowledge that Perl is Larry Wall's baby, you won't be fooled into thinking it's the uber-language. In particular, Wall's description of how Perl does OOP is laughable; he lambastes other languages for taking a paranoid view of data-hiding, which is a smokescreen so that you won't realize how badly Perl does OOP.
It's best to read this book if you're in the middle of a programming project involving Perl. That way you'll KNOW what it does well and what it does badly. It does regular expressions exceedingly well. Its lack of data typing slows down the programmer. Larry Wall will not tell you these things; he will attack C and C++ for their deficits, but will carefully ignore Perl's.
So in short, it teaches Perl very well, but the fact that it lies to the reader at a fundamental level makes me remove one star. When Larry puts out an honest fourth edition, the fifth star will return.
12 of 14 people found the following review helpful
on February 11, 2004
This book is like the Perl tax: everyone involved with Perl needs to pay out and get it, whether they want to or not. There is no other place where all the innards and tricky bits of Perl are laid bare. In that regard it's a bit like sendmail admins having to buy the bat book (the o'reilly sendmail book).
But unlike the bat book, and much as I respect this book and its authors, I find using it absolutely infuriating, not least because the index is a mess. Remember that perl is full of obscure little atoms like ., ^, $* and so on. You need an index that lists every darn one and their combinations. Unfortunately, the indexers of this book did not complete the job, which means that if you quickly want to refresh your memory about something small but important (like: whats the regular expression for whitespace, or is it .= or =. for string appends), you have to go trawling through the whole book.