The three characteristics of Perl programers: mundaneness, sloppiness, and fatuousness. —Xah Lee, 1999
This page is a survey of Perl books from 1999 to 2002, and commentary of the perl culture.
“There's More Than One Way To Do It!”. That's Larry Wall's slogan and Perl moron's creed. I personally have him signed at 1999 LinuxWorld Expo in San Jose (in California, USA, famously known as Silicon Valley), to a belly-up dot-com startup brainpower dot com i was a member of. Jeffrey E Friedl's Mastering Regular Expressions is the book i happened to carry. I literally had to stand in line to have his signature. (it was at the end of a Perl talk, which i arrived late, 5 minutes before the end of talk.) There were about 5 or so before me in line, and i hear middle-aged unix man telling him in great veneration and abjection about what a god he is having created Perl. Look at the ugly and proud Camel, Perl's mascot.
Perl is a computer language. It stands for Pathological Elational Regex Language, aka Pathetically Euphoric Retching Language.
Dimwit: What's so good about your language?
Tom: We provide the Dim Wit feature.
Perl provides the DWIM feature. DWIM stands for Dim Wit I Am, and is pronounced Dim Wit. It is a fashionable locution of the Perl Republic, trumpeted by priests like Tom Christiansen.
Perl is a lousy hack used by sloppy unix sys admins. (because it's free) These days there are well designed languages that are also free. (⁖ Python, Ruby, Scheme Shell, NEWLisp …. See: Proliferation of Computing Languages.)
If you are learning Perl for one reason or another, here's a complete guide for Perlers old and new. I have surveyed all major Perl publications around 1999, both in print and online. Take my advice as nuggets of gold.
Complete Perl online documentation in several formats is at perldoc.perl.org .
“perldoc” is probably already installed on your unix machine. On the shell prompt, type
perldoc perl to get a list of available topics. For example:
perldoc perlrefor regex docs.
perldoc DBIfor database module doc.
perdoc Data::Dumperfor the “Data::Dumper” module.
perldoc -f ‹subroutine name›for the docs on ‹subroutine name›.
The problem with the perl online docs is the same problem that plagues unix “man” pages — utter lack of quality doused in technical ruse and juvenile humor. (this is why Richard Stallman's infamous remark that there lacks free Perl documentations, but the Perl mongers never understood it.) The man pages are useful only if you already knew most of the stuff and want to get some tech details. (And most of the time you'll be disappointed there too.)
I have run into a few projects that tried to remedy this. One of them is: Picking Up Perl by Bradley M Kuhn at Source www.ebb.org. It is a free book in several formats. By the time this project is mature, i already knew Perl well so i haven't read it. Looks pretty good though. I trust GNU people's quality in general.
If you have some programing experience and want to learn Perl, I recommend (in order):
Perl: The Programmer's Companion By Nigel Chapman. amazon In my opinion, this is the best intro to Perl. Written by a computer scientist, treating Perl as a computer language. There's no unix juvenile jokes or obfuscated writings here. You must have some experience with another language or computer science to appreciate this book. If you are linguist of computer languages, and wanted to get acquainted with Perl as a computer language, then this is the book.
If you are familiar with unix and c, then the book to start is Randal L Schwartz's Learning Perl amazon This book quickly get you to speed, and you learn the most useful basics of Perl. The book makes assumption that you are familiar of the ways of unix and c.
Randal L Schwartz has a home page at stonehenge.com .
MacPerl: Power and Ease (≈1998). By Chris Nador, Vicki Brown. amazon This is primarily for Macintosh users who have hardly programed before and want to learn Perl. MacPerl support several Macintosh specific features (such as calling Mac Toolbox and interacting with AppleScript). These features are only quickly mentioned in the last 2 chapters or so. This is not the right book for those already knew Perl and want to learn Mac specific features. As of late 1998, there is no comprehensive documentation or tutorial on Mac specific features of MacPerl.
The MacPerl book is mostly geared for Mac users who had some elementary programing experience such as AppleScript and are getting into programing. It's ok a book for such beginner.
Note, as of today, this book is way obsolete. Mac switched to “unix-based” OS X since ≈2001, and the Classic Mac OS based Perl the MacPerl has been put into coffin.
Chris Nandor is a pompous, unix type of guy who runs a soap box on his home page pudge.net. Apparently thinking himself as some luminary in the perl community. He seems to be the current maintainer of MacPerl as of 2001. If you are a Perl programer on the mac, i advise you to move to the unix perl with Mac OS X.
Vicki Brown is a sweet person who's been working for Apple on the unix part on and off for many years. Last i heard around 1999, she's a tech writer at Apple. She's got a home page at cantaforda.com. Her husband runs Prime Time Freeware, the publisher of unix related stuff for long.
Advanced Perl Programming By Sriram Srinivasan. amazon I like this book. Chapters 1 to 10 taught me the guts of Perl. (references, typeglob, subroutines, modules, OOP, …etc.) Well written with sufficient precision.
Note that there's a new edition of Advanced Perl Programming but by different author. Advanced Perl Programming, 2nd ed By Simon Cozens. amazon According to amazon reviews, it's completely a different book. I do not recommend it.
Effective Perl By Joseph N Hall.
If you want to know all the idioms and tricks of Perl, this is the right book. (⁖ what is the “right” way to read the whole file, how to write this in one line ….)
Most chapters of this book and tips are available at:
effectiveperl.blogspot.com. (the site has been bit rotting for many years)
Joseph is a Perl fanatic. Although he teaches Perl tricks well, treat his generic computing commentaries as garbage. The thing about unix besotted things like C and Perl is that if you wallow in them too long, you are prone to become a fastidious code doodler incapable of logical analysis or writing any mission critical large scale software. Instead, you become habituated on optimizing away microseconds, on trivial code doodling, spending days arguing about code formatting style, while don't know a iota about computer science or real philosophy, yet clamor about theory vs practice day and night.
Perl Cook book By Tom Christiansen et al. amazon A thick and very practical book. If you want to know how to do x in Perl, find it here. The book covers all practical things Perl is used for. (networking, sending emails, database, parsing html, unix admin, … etc.) This book is worth buying. This book is a polished and extended version of the Perl FAQs, at perldoc.perl.org.
I know a monger named Wall
who always peddles his Perl
if he had any grasp
he would just lisp
Wall is nothing but a troll
—Xah Lee, 2000-02
Programming Perl By Larry Wall, Tom Christiansen, Randal L Schwartz. (2nd ed. 1996 amazon) This is the worst tech book ever written. It is badly written, filled with pointless ramble and cheap unix wits and arcane unixism. A large part of the book is verbatim copy of Perl online docs. (originally those “man” pages) This book is designed for unix suckers, and are touted by rampant half-assed literate unix lovers as the best book in the universe. (unix speak, anyone?) However, this book sells, and is the standard Perl reference simply because it is written by the creator of Perl Larry Wall. Later editions have came out since the 2nd in 1996.
If you'd appreciate this book, online docs and tons of other online Perl papers will suffice you unless you must have nicely printed and binded copy. Larry Wall is a infamous happy-go-lucky guy. In my impression, Randal Schwartz is a Perl hacker but not fanatically evangelical. The third edition of the book published in 2001 Randal is replaced by the Perl Journal guy Jon Orwant. I don't know the Jon Orwant guy, but he has written a few other Perl books including Mastering Algorithms with Perl amazon . Algorithms in Perl? Give me a flying break. The Perl folks are funny that they giddily bid computer scientists to recognize their language. There's the OOP book and now Algorithm. In Perl groups you'll also read about AI with Perl or such. It'd be fun to see books titled Computer Science with Perl, Logic Programing in Perl, Lambda Calculus with Perl, Advanced Calculus with Perl, Relativity with Perl, Rocket Science with Perl, Spaced Out with Perl, How To Pick Up Chicks with Perl.
Mastering Regular Expression By Jeffrey E. Friedl. (1st ed. 1997, 3rd ed 2006 amazon) (look at the owls. One crooked, sneaking at you. Cute.) If you work with unix regular expression a lot, you should read this book thoroughly. Of all the Perl books you may skip since equivalent info abound online, but not this one. Note that this book is not about Perl, but about unix regex in general, including those used in grep/egrep/fgrep, python, and emacs. Especially valuable is the delve in some theories and types of regular expressions.
Jeffrey Friedl has a home page at: regex.info.
A tutorial on Perl ＆ Python, with code mirrored side by side: Python Tutorial, Perl Tutorial.
Perl module Tree::Matica simulate functions in a functional language Mathematica. If you are a Perl coder, and don't know what's functional programing or languages, you will learn a lot by using this module.
“…the integers are a subset of the rational numbers, so indeed, a whole number is a decimal number.” — Perl FAQ maintainers. (quoted by Godzilla 2002-02-27 in comp.lang.perl.misc)
• Perl morons think by instinct that their language is best suited for
at least text processing. Perl morons please peruse Ilya Regularly Expresses By Ilya Zakharevich.
• Perl morons think by instinct that Perl's inline documentation kludge “POD” is Donald Knuth's Literate Programming. Perl morons please peruse POD is not Literate Programming By Mark-Jason Dominus. @
• Scripting: Higher Level Programming for the 21st Century By John K Ousterhout, the author of Tcl. @
Rather a extremely mundane and uninformative opinion, but nevertheless enlightening for the generic keyboard punching monkeys of the unix industry.
• Why Python By Eric S Raymond. @ linuxjournal.com
Eric is a leader of the Open Source movement. He wrote the inane Cathedral ＆ Bazaar essay, wildly popular among Open Source tech geekers. As i later learned about Eric, i found him to be a opportunistic ass. He loves to spawn controversial ideas such as aggressively advocating gun totting, supporting Iraq War, insist his views about hackerdom, and don't hesitate in disparaging other coding communities or celebrities, in ways beyond what i think is ethical. He also “invented” a logo for hackers, to peddle his name. His character is in contrast to, say, Richard Stallman or Linus Torvald. Richard is strong in his opinions, to the point of abusing the word “freedom”, but at least adheres certain strict and ethical principles of his own, and is the opposite of money hungry. While, Linus, loves to be inciting in his missives in coding community, usually on very technical matters, calling other morons, but he is often jocular in nature. He's more of a carefree character (similar to Larry Wall in this aspect).
• What's wrong with Perl (≈1998) By Lars Marius Garshol. @ garshol.priv.no
• Lincoln Stein is the author of CGI.pm. He wrote a book: Offcial Guide to Programming with CGI.pm amazon (1998). Very good book around 1998, but as of 2002 cgi is going the ways of dodos. CGI.pm is one fantastically incompetent module, and is responsible for the vast majority of dynamic websites around the dot com era to be non-valid HTML (perhaps 99%). Worse is that it has a very poor and incomplete online documentation, so people are forced to buy his book. These traits are typical of Perl ＆ unix moron's work. Lincoln has also wrote a few web technology related books, which are good. He's got a home page at stein.cshl.org.blog comments powered by Disqus