Higher-Order Perl Available For Free Download
Christopher Cashell writes "As noted on Perlbuzz, Mark Jason Dominus's amazing book, Higher-Order Perl, is now available for free download. This is a great book that goes way beyond your normal programming reference. This will change the way you look at programs, and make you a better programmer in any language. It sits on that special shelf reserved for books like Structure and Interpretation of Computer Programs, The C Programming Language, and The Practice of Programming."
It is truly awesome that mjd is making this available for free.
It's still worth buying the dead tree version, though.
a good programmer can write a script which does the same thing whether run in perl or executed as sendmail.cf
Perl has, in some small way, kept me continuously employed for the last 14 years. It's really pretty surprising the utility and longevity it has.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
Perl is also very useful in a lot of jobs that don't list "Perl" specifically in the job description. I don't know how a network administrator could survive without it, for instance. You'd constantly find yourself spending hours to do a ten-minute job.
Cut that out, or I will ship you to Norilsk in a box.
Python isn't a very good language for quick-and-dirty scripting, and it's often not installed at all by default. It's a pretty good general-purpose programming language, but that's a different matter entirely. Perl, in comparison, is ubiquitous on pretty much all Unix-like platforms, and is well adapted for things like one-off one-liners.
More relevantly to this thread, Perl is a better language for FP than Python is. Perl has full support for anonymous closures (Python's lambdas are very weak by comparison), and Perl has proper predictable lexical scoping (Python's scoping rules are rather strange). This all reflects the different design goals of the languages. Python is built on the principle that there should be only one way to achieve any goal -- and in practice that's usually objects. Perl is built on the principle that the programmer should have loads of options to choose from -- and hence it supports several programming paradigms equally well.