I've been thinking about the Perl books that I have read and I wondered what the best Perl books of all time are. Naturally, it's not an easy question. After much debate with myself over a beer and carefully selecting a voting group (me), I finally narrowed it down to a few categories:
Best Perl Book for Beginners
That has to go to Learning Perl, 4th edition, by Randal (one "l") Schwartz, Tom Phoenix and brian d foy. Though some may feel that there are other beginner books for Perl which are better, this one is by well-known, trusted authors and it's regularly updated to cover the latest versions of Perl. Further, they have a proven track record of teaching Perl. It's tough to do better than this book.
Best Perl Book for General Reading
I'll give this one to Perl Best Practices by Damian Conway. I don't agree with everything in this book (inside-out objects, anyone?), but it's a phenomenal work which few could undertake. Furthermore, even if you disagree with some of what Damian has to say, he makes persuasive arguments and you'll have to think about what he has to say. That's never a bad thing.
The Perl Book I Want Everyone to Read
Perl Testing: a Developer's Notebook by Ian Langworth and chromatic. Hands down, this is the one everyone should get their grubby little hands on and start following. If anyone asks me how I got to be such a good programmer (though that's a questionable thing), I say "testing". There is no single thing which has made me a better programmer than testing. Period.
Most Fun Perl Book
The upcoming Perl Hacks by chromatic, Damian Conway and, er, me. OK, maybe I'm biased on this one and to be fair, I hardly feel I deserve to be on the cover given the quality of contributions from the other two authors, but this book is a lot of fun. You'll delve into dark corners of Perl that you never knew existed and you'll have a blast doing it.
Best Perl Book of All Time
Higher Order Perl by Mark Jason Dominus. While not recommended for beginning Perl programmers, experienced programmers will not only learn new ways of thinking about Perl, they'll learn new ways of thinking about programming. If you think you'll learn nothing from this book, you're wrong. If you say you've read this book and learned nothing from it, I suspect you're a liar (unless you're Knuth).
Cheers,
Ovid
New address of my CGI Course.
Agree with what you say about PBP. This and the Camel have a permanent place on my bedside table and every night I read a few pages of one or the other :)
Also agree with your comments regarding HOP. I have a copy of that, but I've found that at my level - it's just too heavy going. Perhaps I'll get back to it later.
Perl Hacks sounds great, and I'll definitely be looking out for that one.
I'm also looking forward to brian d foy's up and coming Mastering Perl.
Cheers,
Darren :)
I don't see why the Camel should be on that list. It was never important to me. I borrowed a copy for a few days and found that it wasn't all that useful. Eventually I just read the documentation and other books which aren't duplicated in the docs.
⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊
I don't see why the Camel should be on that list.That's fair enough, and I won't argue with you.
So if somebody just starting out with Perl were to come to me and ask for some recommendations - that's the list I would give them.
Cheers,
Darren :)
The first couple chapters or so of the Camel book are the best quick introduction to Perl I think I've ever seen for someone who's already a programmer (in other languages). It's certainly valuable for that if no other reason, to say nothing of the fact it's kind of an entertaining read.
|
- apotheon
CopyWrite Chad Perrin |
I have found Perl black book, 2nd edition by Steven Holzner to be useful. Though I don't know if it's worth $95-107 wow?
Edited by planetscape - fixed link
As I pointed out in What do you know, and how do you know that you know it?, I would strongly recommend against it.
Incidentally if you want to fix your node, do what I did. Preview source, save a copy, go in and change the form to have an action of http://www.perlmonks.org, then fix the href, and respond on your private copy of the page.
Well I did try what I thought was right but planetscape beat me to the punch.
As to the black book being bad? There are some glaring issues. Some style such as the lack of the mantra of use strict; and the CGI stuff is not handled well and some other things.
I was not suggesting it as a beginners book. More for trying to get a concept. I usually review a couple books for something that is stumping me.
I know it's blasphamy but sometimes the cookbook doesn't do it for me. Too thick in the head I guess. ;)
There are lots of books that try to break things up into easily digestable pieces. I'd recommend finding one that won't encourage bad habits.
I liked Perl in a Nutshell, by Nathan Patwardhan, Ellen Siever, and Stephen Spainhour. I wouldn't recommend it to a beginner, but I like how it arranges information in a way that's easy to find.
I think it boils down to
My first job coding in perl was a matter of picking apart code and understanding it; I had to do that before I could even think about refactoring, rewriting as modules, etc. I was pretty much just thrown into it, and expected to pick it up and troubleshoot things quickly. In this case, I found Perl in a Nutshell a godsend, as I could get quick answers to questions like, "What does the =~ do?" or "How do I assign values to a hash?". Oh, and the Perl Cookbook was nice, too, for that. Since I also learn better by examples, I found these very useful.
As my interest in Perl grew and I had more time to think and learn about *why* things were the way they were, and I also realized the code I was working with was pretty monolithic, with little or no use of modules, I found the Camel to be more useful. PBP wasn't around for me then, but I think it'd be somewhere in between - it's a good balance of examples and explaining of *why*.
-- Burvil
As always, YMMV. I would not recommend this book to a beginner, because I did not find it useful when I was a beginner (more so than now). It often relied on the reader understanding things that I had not yet learned, and that I was not readily able to learn from that book. Others, no doubt, have had different experiences. Those more intelligent (or more code-savvy) than I am would perhaps find the book more useful, even as beginners.
Actually, for Perl beginner books, I like a trilogy: the camelid trilogy, that is. One could do far worse for learning the Perl language than to read the llama, the alpaca, and the camel itself, one after the other. All of them are truly excellent works.
Unfortunately, I haven't read any of the rest of your list. They're all on my to-buy list, though.
|
- apotheon
CopyWrite Chad Perrin |
Surely there's some place for Object Oriented Perl in any list of this sort?
--rjray
It's certainly high on my list, but which category? I really didn't think there was any one spot that it could fit in. I do like that book, though. It's definitely a must read for many programmers.
Cheers,
Ovid
New address of my CGI Course.
Best Perl Book for Beginners ... has to go to Learning Perl
Speaking for yourself, of course. I know that the Perl community is very far concensus on that book.
I for one feel the Camel has to be on a list of superlative Perl books... but I'm not sure what the appropriate category would be, if not Best Perl Book of All Time. Best General-Purpose Book, perhaps? For me it was both tutorial (excellent) and reference.
Now can we vote for "best man page"?
Best Perl Book for Beginners ... Learning Perl,
Hmm... depends on what you're calling "beginner" I guess :-) For people who already know another language I'd recommend the Camel over Learning Perl - which seems aimed more at people new to programming
Personally, when teaching newbies, I don't find Learning Perl that useful. Don't get me wrong it's a nice book, but I don't find that the order and emphasis of topics match the way I teach (e.g. I introduce OO and references quite early.)
Unfortunately I've not come across anything else I like either - so maybe it does still count as best...
Best Perl Book for General Reading ... Perl Best Practices
I'd probably nominate Peter Scott's excellent Perl Medic. A darn fine combination of decent prose and good advice. I'll save PBP for later...
The Perl Book I Want Everyone to Read ... Perl Testing: a Developer's Notebook
This is the category I'd vote Perl Best Practices in under. It would make my life a lot easier if everybody followed the practices in this book. Even the ones I disagree with!
Now - you know I'm a testing junkie and, like you, testing has radically improved the quality of the software I help develop. However while PTDN is a nice introduction to testing with Perl, and I bought copies for work, I don't think that its the sort of book to turn people on to testing who aren't already test infected. It demonstrates how to test - but not why testing can be so good.
So PTDN would fall into the category of "Perl book I would want people to want to read" :-)
Most Fun Perl Book
Higher Order Perl.
(It is entirely possible that I have a different definition of fun from other people.)
Although one of the main effects of my reading it was making me go reinstall Lisp on my powerbook - which may have not been its authors intent :-)
Best Perl Book of All Time
For me it'll be the Camel book. Bought three editions so far. I originally learned Perl 4 from the old pink edition, and all the others have been useful in getting an overview of everything in the language.
So PTDN would fall into the category of "Perl book I would want people to want to read"
That's a good category, but I classify it as "Perl book I want people to buy."
Personally, when teaching newbies, I don't find Learning Perl that useful. Don't get me wrong it's a nice book, but I don't find that the order and emphasis of topics match the way I teach (e.g. I introduce OO and references quite early.)
I think Elements of Programming with Perl provides both more breadth and more depth than the Llama. Though I don't like everything about the book, it is the best beginner's book out there.
The Learning Perl book is useful for some people. However, I have found that others respond well to simon cozens Beginning Perl 1861003145
I originally picked up the "Teach Yourself Perl in 24 hours" and am posting this comment to try and prevent others from making the same mistake. Before I get slammed for my choice in books allow me to defend by saying that I have used other 24hour books and had decent returns from those investments. Turns out, I should have stuck with my gut and just picked up "Lerning Perl" from the start.
The worst part of the 24hour book was that there were no answers for the activities/questions at the end of chapters. Makes it darn near impossible to keep going once you get stuck...
Anyhow, 'Learning Perl' not only has suggested answers to help you along, but the writing style is much more fun to read and it does a better job (IMHO) of presenting items in a logical order.
I had to throw my vote in here against Learning Perl and for the Camel Book. I learned by reading the Camel, switching from C++. As it turned out, the switch was permanent (it's been over 10 years, perl is definitely my main language now). But although I've tried going back to it, I still can't recommend Learning Perl for people who already know how to program.
When you already know what you're looking to learn in a new language, the Camel Book gives you all you need as fast as you can handle. It's an exhilirating journey at top speed.
Learning Perl feels more like a horse and cart to me.
I have three additions:
Yeah, the last is specialized, but a fabulous book. Interestingly enough, all three books I listed were O'Reilly publications, so it bears saying that I have no stake in O'Reilly -- just a happy customer. ;-)
SubSkills (Tie)
Mastering Regular Expressions by Jeffrey Friedl
and
CGI Programming with Perl by Gundavaram, Guelich & Birznieks
And, (re-inforcingly, or emphatically or somesuch):
For General Reference, to me (YMMV, as demonstrated above), the "Little Black Book," Perl Core Language, is indeed right up there with perldoc... . I can cheerfully forgive its omissions (I mean, c'mon, how many times does one need to hear the USUW mantra?) and even those few sins of commission ascribed to it.
And I'd go a lot of places without my Amex card that I would not go without my copy of the Pocket Reference to the "Perl Debugger".
perlmonks.org content © perlmonks.org and adrianh, Anonymous Monk, apotheon, borisz, bowei_99, chromatic, derby, diotalevi, dwhite20899, dynamo, jdporter, Marza, McDarren, Ovid, radiantmatrix, rjray, spiritway, tilly, ww, zerogeek
prlmnks.org © 2006 edmund von der burg (eccles & toad)
v 0.03