Slashdot Mirror


Programming Perl, 3rd Edition

Chronic reviewer chromatic writes again, this time with a review of the newest iteration of what is probably the emblematic Perl book, the O'Reilly camel book. Read on to see how it stacks up to earlier versions of that work, and whether your Perl skills would benefit from reading through it.

Programming Perl (third edition) author Larry Wall, Tom Christiansen, & Jon Orwant pages 1067 publisher O'Reilly & Associates rating 9.5 reviewer chromatic ISBN 0-596-0027-8 summary The definitive guide to the Perl language, updated for 5.6.1.

The Scoop Longtime Perl fans know Programming Perl as the Camel, because of the cover animal. With the first edition in 1991, Perl programmers gained not only a charmingly appropriate mascot, but the ultimate language reference. True to form, this Camel's grown with the language. In the four years since the last release, it's increased in size by 67%.

Everything you liked about previous editions has returned, in one form or another. Additionally, this third edition covers the largest changes made for Perl 5.6 (actually 5.6.1, as the book's ahead of the current stable release by a bit) -- Unicode, threading, and more Perl guts.

While the previous editions were exceptionally well-written references, they were also aimed squarely at experienced programmers. This edition pushes back the starting blocks somewhat, providing a gentler introduction to the world of Perl. The wealth of new information is staggering, but as you'd expect from the luminous authors, even the core language reference is highly readable and entertaining.

What's to Like? Logically, the book is divided into five main sections. (Gone are the massive 80-page chapters of the second edition). The first section, one chapter, gives a good overview of Perl, as a language and a philosophy. It includes a quick introduction. The second section gives the language's gory details, covering just about everything you would need to know. It's arranged in terms of ascending complexity. The enhanced, extended, and improved regular expression chapter stands out as the best member of this group.

The third section discusses Perl as technology. Here's where Unicode comes in, as well as the internals of Perl (through the internal compilation process, using the debugger, or using XS to extend Perl with C code). Everything here is quite good. Expectably dry subjects like Unicode or threading are readable and even a little entertaining. If you're not convinced, you can skip around and still learn quite a bit.

The fourth section is devoted to Perl as culture, with discussions about portability, security, good practices, documentation, CPAN, and a bit of poetry. The security chapter is quite good, but left me wanting more information. Any chapter here is accessible if you've made it through the second section, so feel free to pick and choose what you need to know.

Rounding up the spare bits is the reference section. Not only will you find descriptions of the special variables, built-in functions, and standard library, but the organization and presentation of these descriptions has improved. Functions have little annotations listing which magic variables they set, possible exceptions they raise, and the like. That accounts for 150 pages of the overall goodness. Don't skip the glossary at the end, if you're confused or looking for amusement.

What's to Consider? While it's a temporary conundrum, it's a little odd to read about features that aren't quite implemented yet. This is most noticeable in the Unicode discussions and the chapter on threading. Occasionally, the authors will describe a feature and then admit that the specifics will likely change. (Have a look at the documentation.) Granted, the bulk of the language is mature and stable, and the definitive guide can't very well get by with ignoring major features, but it reads a little oddly.

The intended audience is still the serious Perl programmer. Dabblers and casual learners will find enlightenment and instruction. Realize, though, that while it's easier to start your journey here, absolute beginners would do well to explore a Learning Perl or Elements of Programming with Perl first. People who've programmed before (beyond dabbling with VB, or doing mouseovers in Web pages) should have little difficulty picking up the Perl language and mindset.

The only other possible improvement that comes to mind is expanding certain chapters. As noted before, there's more to say about security and efficiency. It would also be nice to have a chapter on common Perl idioms one might find in EFNet #Perl or at Perl Monks, or the latest Perl Mongers meeting. (Half of the fun is discovering and sharing new tricks and shortcuts.)

The Summary Part of being a good programmer is knowing where to turn for accurate and useful information. This is the place for all things Perl. If you use Perl regularly, put the new Camel on your shelf. Table of Contents
  1. Overview
    1. An Overview of Perl
  2. The Gory Details
    1. Bits and Pieces
    2. Unary and Binary Operators
    3. Statements and Declarations
    4. Pattern Matching
    5. Subroutines
    6. Formats
    7. References
    8. Data Structures
    9. Packages
    10. Modules
    11. Objects
    12. Overloading
    13. Tied Variables
  3. Perl as Technology
    1. Unicode
    2. Interprocess Communication
    3. Threads
    4. Compiling
    5. The Command-Line Interface
    6. The Perl Debugger
    7. Internals and Externals
  4. Perl as Culture
    1. CPAN
    2. Security
    3. Common Practices
    4. Portable Perl
    5. Plain Old Documentation
    6. Perl Culture
  5. Reference Material
    1. Special Names
    2. Functions
    3. The Standard Perl Library
    4. Pragmatic Modules
    5. Standard Modules
    6. Diagnostic Messages

    Glossary
    Index

You can purchase this book at ThinkGeek.

99 comments

  1. That book was good by billybob2001 · · Score: 3
    chomp <>;

    Next

    (Those books don't last like the old ones used to)

  2. Odd timing, what? by The+Welcome+Rain · · Score: 3

    I wouldn't have expected a third edition of the camel just now. Isn't Perl6 coming out Real Soon Now? I understand it will introduce some significant new capabilities. Given that, I'd have waited.

    --

    --
    Some keywords for the NSA in the Lord of the Rings universe: One Ring bind find Sauron quest Nazgul freedom
    1. Re:Odd timing, what? by jperegrino · · Score: 1

      Nope. "Real Soon Now" is Perl circles is a sarcastic phrase meaning "when we are good and ready". I'm guessing one more year before you see a shaky alpha and another before a you see a usable beta. And that'soptimistic.

    2. Re:Odd timing, what? by Anonymous Coward · · Score: 1

      It's been talked about for quite a while, but that's it. Perl6 doesn't even have a line of code yet, they're still bickering their way through the planning stages. I'd honestly be surprised and wholly impressed if you see even an unstable alpha before 2002.

    3. Re:Odd timing, what? by Elian · · Score: 1

      Perl 6 isn't in a state to be writing books about yet. The first draft of the language design's not finished, and most of the internals design's not started yet.

    4. Re:Odd timing, what? by yem · · Score: 1

      Perl 6 is a loong way off. Check this page
      for more info an listen to the mp3. it's cool:

      http://dev.perl.org/~ask/als/

      --
      No, I did not read the f***ing article!
  3. Would I walk a mile for a camel? by AFCArchvile · · Score: 1
    No. Next question please.

    Seriously, I don't see much use for perl other than for programming server-side applications (i.e., the Slashcode which powers Slashdot's forum system, etc.). Until I do get into the server world, I won't need it.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
    1. Re:Would I walk a mile for a camel? by Jedi+Alec · · Score: 2

      Would I walk a mile for a camel?

      I guess you don't smoke...

      --

      People replying to my sig annoy me. That's why I change it all the time.
    2. Re:Would I walk a mile for a camel? by wangi · · Score: 3
      Seriously, I don't see much use for perl other than for programming server-side applications (i.e., the Slashcode which powers Slashdot's forum system, etc.). Until I do get into the server world, I won't need it.
      Well you're missing out on Perl's real uses then!

      Perl isn't ideal for Slashcode (it's too large and crappy, other technology would be better). It is really good for knocking up quick scripts... Want to rename a bunch of mp3 files so they don't have spaces in their name? Perl's for you. Want to rename mp3 files based on CDDB information? Perl's for you.

      I just picked those off the top of my head, but I use Perl daily for small scripts to cut out mundane shell typing. It's also ideally suited to build scripts and environments.

    3. Re:Would I walk a mile for a camel? by chris\ · · Score: 1

      I do a lot of misc stuff with it on my workstation, like rotating logs, grab news, have a pyschotherapy session with Eliza *g*, whatever I need a quick script for. Perl can be used for a whole lot more than just web-related stuff, which many people don't consider (which IMHO is naive). Just ask #perl on EFnet ;)

      Its handy, and most times just downright sexy.

    4. Re:Would I walk a mile for a camel? by AFCArchvile · · Score: 1
      Okay, sounds nice. Maybe I could rename all my MIDI files from Heretic from HExMx to MUS_ExMx. Only problem is, how do I run Perl in Windows?

      Yes, hit me on the head with a wet penguin, I said the W-word. However, the first company that makes a nice Perl development kit for Windows would certainly get recognized. Oh well, just another game of wait and see...

      --
      "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
    5. Re:Would I walk a mile for a camel? by the+Man+in+Black · · Score: 1

      When you're a lowly software engineer working for an web design/consulting/hosting company (like I used to), you don't always get to decide what technology you'll get to use on a site. I was asked to do things with Perl that Perl was neverdesigned to do...and they worked. That's the great thing about Perl, it's flexibility. Dynamic content, web-based e-mail, database searches, even content management systems (all things I've done, just to name a few). Perl's not always the BEST solution, but a good programmer can make it a VIABLE solution.

    6. Re:Would I walk a mile for a camel? by complex · · Score: 2

      you're looking for a perl _interpreter_.

      and you'll find it at http://www.activestate.com

      perl development kit?!? well, you already have notepad.

      complex

    7. Re:Would I walk a mile for a camel? by AFCArchvile · · Score: 1
      perl development kit?!? well, you already have notepad.

      Oh yeah, my HTML editor! [hits self in head with frying pan - *BONNNGGGG!!!* ] Duh!

      --
      "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
    8. Re:Would I walk a mile for a camel? by wangi · · Score: 1
      Okay, sounds nice. Only problem is, how do I run Perl in Windows?
      Simple, you go to ActiveState and download ActivePerl. Since you're on Windows Perl will amaze you even more with its usablity over file manager use.

    9. Re:Would I walk a mile for a camel? by beebware · · Score: 1

      'Perl development kit' - use a text editor, I do. Zap for RISC OS has a nice 'Perl syntax colouring' mode, and EditPlus does the same for Windows. Oh, if you bothered to check Perl.com, you'll now that Perl is available for Win32, Macintosh, 'UNIX' and RISC OS. Perl is a very handy language to know, and it's quick and simple. I know the 2nd edition of 'The Camel' has came in very useful for me, but it's also good to check on other resources.
      Richy C.
      --

    10. Re:Would I walk a mile for a camel? by dragonfly_blue · · Score: 2
      You mean, like ActivePerl?

      Or did you mean, more like IndigoPerl? Perhaps you aren't aware that Perl has been available for Win32 systems for over four years, and that it's been ported to almost every other OS under the sun...

      Or, more than likely, IHBT.

      --
      Free music from Jack Merlot.
    11. Re:Would I walk a mile for a camel? by FatOldGoth · · Score: 2
      Perl is a godsend for sysadmins. I use it on a daily basis for doing things like managing MS Exchange directories via LDAP, extracting filtered and reports from the NT event logs and migrating users between different mail systems.

      Anyone looking to use Perl for administration could do a lot worse than read Perl for System Administration.

      --

      I would be a paid subscriber if Taco and Hemos weren't such cunts
    12. Re:Would I walk a mile for a camel? by DeathBunny · · Score: 1

      >Only problem is, how do I run Perl in Windows?

      Go to www.activestate.com and download ActivePerl for Windows. I've been using Perl for sysadmin scripts on NT and Unix networks for years. It's pretty amusing really. Unix admins take scripting as pretty much of a given. You show the average MCSE the same kind of automation on NT and their head explodes!! :-)

    13. Re:Would I walk a mile for a camel? by chris\ · · Score: 1

      This looks promising: VisualPerl plugin

      If you can't handle notepad or edit, this looks like it'll combine the debugging and intellisense stuff in VS. Says its due out when VS7 comes out, so I'm not going to hold my breath.

      BTW, on perl.com, there is always a link to the FAQ "Is there a Windows version of Perl?" right there on the left side of the main page.

    14. Re:Would I walk a mile for a camel? by stevey · · Score: 2

      well, you already have notepad.

      Or, you could use Emacs - which is also available for Windows.


      Steve
      ---
    15. Re:Would I walk a mile for a camel? by wangi · · Score: 1
      Want to rename a bunch of mp3 files so they don't have spaces in their name? Perl's for you.
      No: find -name '* *.mp3' | xargs mv `find -name '* *' | tr ' ' ''`
      True, however I also like to clean up the names a bit more while I'm at it - i.e. remove ' and convert %20 and such like...
    16. Re:Would I walk a mile for a camel? by AngusSF · · Score: 1

      So which is a better implementation for development of portable perl code (stuff that will run on Win32 and Linux boxen and *BSD boxen), indigo or activestate? If you have to develop on a Winbox, which I do for now ...

      Also, which has a smaller footprint for something I can haul around and dump on client machines for network management?

      --
      "A gun is a tool, Marian. No better, no worse than any other tool. An axe, a shovel, or anything." Shane (1953)
    17. Re:Would I walk a mile for a camel? by Jedi+Alec · · Score: 1

      Heretics! Who needs Notepad or Emacs when there is ...drums in background slowly increasing in volume...edit! Or for the die-hards, ever tried writing HTML in Edlin?

      --

      People replying to my sig annoy me. That's why I change it all the time.
    18. Re:Would I walk a mile for a camel? by Chagrin · · Score: 1
      In a nutshell, for quick tasks like you mention, Perl is the best way to go. Perl has good competition in Python or PHP (on the web side), but for quickly knocking out scripts it has no competition.

      --

      I/O Error G-17: Aborting Installation

    19. Re:Would I walk a mile for a camel? by otis+wildflower · · Score: 2

      Seriously, I don't see much use for perl other than for programming server-side applications (i.e., the Slashcode which powers Slashdot's forum system, etc.). Until I do get into the server world, I won't need it.

      That's like saying an 18-wheeler's only good for hauling cargo.

      What, you were planning to write a first-person shooter in Perl?

      btw, PerlTk _is_ cross-platform, so in theory if you needed a GUI app in Windows, you could do it. Did it myself (wrote a list viewer in <100 lines for some CSVs), though it wasn't particularly fun. Perl can do anything useful that VB can, and it can do it across dozens of platforms.. Not that it's the optimized solution, or the easiest solution, or even the fun solution. But you can take Perl with you to any task (client-side data parsing and munging results from DBMSs, server-side web/analysis stuff, sysadm, etc) and get it done.

      (and for all you Perl maniacs, that FPS thing was NOT a dare!!! Please don't inflict such a beast on humanity...)

      Your Working Boy,

    20. Re:Would I walk a mile for a camel? by spudnic · · Score: 1

      I would assume that most of the youngsters on here haven't even heard of edlin much less know how to go back and edit a line 3 lines up.

      It's pretty sad when you are considered an "old guy" at 30. The hardest part is that when I was younger, people where amazed that I was able to do what I could do at such a young age. Now it's just expected. And it's fairly common for a 17 year old to hold a professional position in the computing field.

      bah... who needs 'em!

      --
      load "linux",8,1
    21. Re:Would I walk a mile for a camel? by Kazir · · Score: 1

      VIM (VI) is also available for Windows.

    22. Re:Would I walk a mile for a camel? by dragonfly_blue · · Score: 1

      I think most people would tell you that ActivePerl is a better (read: more established, stable, time-tested) choice on Win32 at this point, but I'm personally interested in IndigoPerl, because you might find that it does have a smaller footprint. I haven't tried Indigo yet, so that might be me blowing hot smoke. I do know that Microsoft has specifically endeavored to help ActiveState with their Perl port in the past, so that should either comfort or terrify you depending on your perspective.

      --
      Free music from Jack Merlot.
    23. Re:Would I walk a mile for a camel? by phred · · Score: 2

      Forget all this vi vs. emacs foolishness. Why not use a REAL editor?

      teco for Windows.

      Yes, it's still around.

      --------

      --
      Bill Gates Is My Evil Twin.
    24. Re:Would I walk a mile for a camel? by biohazard99 · · Score: 1

      Windows users should check out HTML-Kit, the text editor on steroids. Useful for Perl, JavaScript, PHP, XHTML, and CSS2. It even handles C/C++ files with a color syntax, beats the hell out of notepad.

  4. 1067 pages by Anonymous Coward · · Score: 1

    Not surprising, since Perl is going the way of VB and becoming a bloated, hard-to-read language best suited for writing completely unmaintainable, uncomprehensible code.

    Most people are moving to Python or Ruby, which are proving to be far more readable, extensible, and flexible languages than Perl.

    Don't get me wrong--I used to be a Perl zealot, until the amount of crap that Perl adopted just sickened me to the point where I had to leave my first love and find something else that would be much more suitable to what Perl used to be perfect for... *sigh*

    1. Re:1067 pages by phred · · Score: 2

      "Most people."

      Nice try, generalizing your personal experience. Guess what, doesn't work.

      I'm moving to Ruby AND staying with Perl.

      --------

      --
      Bill Gates Is My Evil Twin.
  5. It's just not the same by ackthpt · · Score: 2
    Without Randal Schwartz

    --

    --

    A feeling of having made the same mistake before: Deja Foobar
    1. Re:It's just not the same by cjon · · Score: 2

      Nonetheless, he lists the 3rd addition in his book section at the link you provided

      It's in the "Books I helped write which no longer acknowledge me as a contributor because of company politics" section. <G>

  6. Books on moving targets by Masem · · Score: 4
    I know it's been talked about before, but it seems odd to try to write books that are aimed at moving feature sets, such as perl, HTML, etc, without some mechanism for the user to get the next version or three at a free or reduced cost. (Mind you, O'Reilly books are generally inexpensive, but this is true for all publishers). Certainly has having used the 1st edition of Camel, I know that perl has changed a lot in 5 or so years, and much of that first book, while not depriciated, doesn't fully cover what I need to know nowadays for perl hacking. I've been hestitent to buy the more recent editions because I see the same problem happening in another 2 or 3 years. As this review points out, some of the features on Unicode and threading could be wrong when 5.6.1 is released, making those pages of the book useless.

    While electronic books can easily fix this problem, that's not the solution when you need to look at paper copies, whether at the terminal or on the toilet. Maybe there should be some way to 'register' the books, such that when the n+1(th) edition comes out, you can get it for a substanially less cost, because your initial purchase of the nth edition helped to make the n+1(th) edition possible. Or one could send in the cover of the nth edition and a S&H charge to get a copy of the new book. Or something along these lines.

    If any computer book publishing company could do this, I would expect ORA to be the first to try such, given their helpfulness in the past and present. But with many standard 'things' moving so fast (XML, HTML, Perl, Python, etc), we need a some book upgrade mechanism in place ASAP.

    --
    "Pinky, you've left the lens cap of your mind on again." - P&TB
    "I can see my house from here!" - ST:
    1. Re:Books on moving targets by the+Man+in+Black · · Score: 1

      Sounds exactly like the Microsoft subscription system that we were flaming about a couple weeks ago. Hmmm...

    2. Re:Books on moving targets by thaigan · · Score: 1

      You do have options. Don't buy the book until you're ready. If you want to wait until perl6 comes out or even perlX(that's Roman numeral ten), then feel free. No one is forcing you to buy anything. I don't think it's in any successful publisher's business model to sell upgrades.

      --

      42
    3. Re:Books on moving targets by thaigan · · Score: 1

      I think that system required you to stop using the product, along with giving up your first born;-)

      --

      42
    4. Re:Books on moving targets by TheFalken · · Score: 1

      > we need a some book upgrade mechanism in place ASAP.
      .deb or .rpm ? :-)

    5. Re:Books on moving targets by lar3ry · · Score: 3

      Actually, I believe that Macintosh Bible was sold on an "upgrade" basis. If you bought the first edition, then you were entitled to two "free upgrades" (in the form of mini-booklets that they'd mail to you).

      When the second edition became available, they sent me a mail offer for a nice discount.

      I believe that they said they were using the "software business model" for the book. I just checked on Amazon and they are up to the 6th edition, except that it looks like there are now over fifty contributors to it (I believe there were just two or three in the original edition). I also don't know if they are using the same "upgrade model" of publishing, but it was quite an interesting idea. (And this was back in the 80's!)
      --

      --
      "May I have ten thousand marbles, please?"
    6. Re:Books on moving targets by ab762 · · Score: 2

      I have here on the shelf JavaScript, The Definitive Guide Beta Edition, 1996. ORA tried issuing books in Beta, promising to send the final at a 25% discount when ready.

      The intro summarizes all this and points to http://www.ora.com/info/early, which is 404 today.

      So, it's been tried, but I don't know what happened to the experiment.

    7. Re:Books on moving targets by rigau · · Score: 1

      (Mind you, O'Reilly books are generally inexpensive, but this is true for all publisher)

      Huh? Inexpensive? Maybe peachpit press books are inexpensive, or the "learn in 24 hours/24 days" books. Last thing O'reilly books are is inexpensive. Coputer books are some of the most expensive books out there and O'reillys are some of th emost expepsive computer books, some of the best, but still some of the most expepsive.

    8. Re:Books on moving targets by lemox · · Score: 1

      24hr/24day books are one of the most expensive, IMO, with Unleashed books probably topping the list. The 24hr books are sold by the pound, you're not paying for a quality book, you're paying for the paper and binding of the useless behemoth.

      --

      "We obviously need a new moderation category: (-1, Woo-fucking-hoo)" --Mr. AC

    9. Re:Books on moving targets by Masem · · Score: 2
      save for some of the thicker ORA books, most are less than $35 (last I checked but it's been awhile); "Learn in 24 hrs!" on the other hand can easily run $40 or more. When you include content per $ into the comparison, ORA books win hands down. One thing that helps keep ORA books down in cost is the lack of a book CD, which nearly every other computer press pushes out, and most times the CD is useless.

      --
      "Pinky, you've left the lens cap of your mind on again." - P&TB
      "I can see my house from here!" - ST:
    10. Re:Books on moving targets by Kazir · · Score: 1

      O'Reilly does have an Upgrade Policy.

    11. Re:Books on moving targets by Kazir · · Score: 1

      I've always found that O'Reilly books are the same price or less than other publisher's books. Though compared to other books, the O'Reilly books have a higher density of information.

    12. Re:Books on moving targets by aberkvam · · Score: 3
      Ahh, but O'Reilly does offer an upgrade policy on their books. If you have an older edition of one of their books, they will give you a 30% discount on the newer edition. All you need is the title page of the older edition. Details are available at http://www.oreilly.com/order/upgrade.html.

      Okay, it's not quite "a S&H charge to get a copy of the new book" but that's a rather unrealistic expectation anyway.

    13. Re:Books on moving targets by Evil+Grinn · · Score: 1
      Actually, I believe that Macintosh Bible was sold on an "upgrade" basis. If you bought the first edition, then you were entitled to two "free upgrades" (in the form of mini-booklets that they'd mail to you).

      Publishers of reference books have been doing similar things for decades. Check out your nearest public library. Very likely they have an edition of Enclycopædia Britannica that is about 10 years old, with "yearbooks" for every year since then. The yearbooks are the patches that keep it up to date.

      I'm pretty sure they weren't free. But it must have been cheaper than buying 20+ volumes every year.
      ---

    14. Re:Books on moving targets by Evil+Grinn · · Score: 1
      While electronic books can easily fix this problem, that's not the solution when you need to look at paper copies, whether at the terminal or on the toilet.

      Would be nice to have a printer that can bind up its output in such a way that it looks and feels like a store-bought book. Anybody know how much such a thing would cost ?
      ---

    15. Re:Books on moving targets by rigau · · Score: 1

      You kidding me? the average 24h book is about 25 + tax. I saw a Oreilly book on WML and WML Script athat must have been about 200 pages lon and it went for 35 bucks. Hey I love O'Reilly books they are the best but that doesn't mean they are inexpensive. They ussually offer a better value but they are not inexpensive just like the K&R prentice hall C programing language book. It is a great book but it goes for $40. that is simply expensive no matter how good the book is.

  7. Still on the first edition. by funkman · · Score: 2

    For those who wish to be a little too hard core. The 1st edition which only covers version 4 is perfect intro to perl. After that, work your way through the man pages (in HTML). You'll notice many of the perl books are rehashes of the man pages. (I use man pages loosely, since all the perl docs can be seen in HTML and mush easier to read and navigate).

  8. Re:Why? by the+Man+in+Black · · Score: 1

    You didn't really just recommend ASP on Slashdot, did you?

    --Just another Pimp A$$ Perl Hacker

  9. This is the book I learned perl on. by tshak · · Score: 1

    I went from 0-60 lines of Perl in no time with this book. I never have time to read it anymore because everyone at work keeps stealing it!

    --

    There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
  10. evolution by aerobee · · Score: 1

    Its the latest of reference tomes for perl. Like any other longstanding tool(language *and* documentation), it has evolved. The language itself is terse and therefore some feel that it reqires significant documentation to cover. I'm still kind of sad the book is so long now(It easy to write volumes, difficult to be informative and brief(but worth it)). Perhaps it was an exercise in deep analysis for the authors since a total rewrite of the language is in the works.

  11. Flamebait? But Perl code DOES look awful! by Anonymous Coward · · Score: 1

    That's not to say it still isn't a useful language. But pretty it ain't. It's like a programmer's desk. The ugliest ones are the where the most useful code comes from because he's not wasting time watering plants and wiping fingerprints off the screen and chastising anyone messing up his cubicle.

    1. Re:Flamebait? But Perl code DOES look awful! by cyber_monkey · · Score: 1

      Hopefully he is wiping the spooge of your mouth!!!

  12. Re:Why? by Gibbys+Box+of+Trix · · Score: 1

    My copy of second edition is over 4 years old (September 1996 from the printing history) does this really count as recent?
    --
    01 13 19
    TVDJC TDSLR AZNGT NWQSH KPN

  13. Re:Why? by ichimunki · · Score: 1

    I vaguely suspect this entire post is not "insightful" but rather "flamebait", and in fact, may be indicative of an individual who has a highly organized set of troll and dummy accounts with which to moderate inane posts into a position where they will be perceived by others in such a way as to engender pointless debates.

    If that is not the case, I would like evidence that any serious comparison of the 2nd and 3rd editions went into recommending buying a remaindered 2nd edition to save a measly $10. I mean, duh. The 3rd is a much thicker tome and although I have not compared it content-wise to the 2nd, I assume that ORA and the writers did not produce the 3rd simply to snare idiots into upgrading. If you don't already have the Camel, I don't see why you would buy the 2nd instead of the 3rd. The 2nd is great, but I can think of numerous improvements that could have made the book much more accessible.

    Finally, further discussions about Perl vs. PHP vs. ASP are just plain lame... and a fair indication that the poster intends to start a religious war. Perl users like Perl for their own reasons. Others may like other things for other reasons. But since this is a book review of a Perl book, let's stick to the topic, which is not a flame war about which web scripting method is best.

    --
    I do not have a signature
  14. Computers are moving targets by Hairy_Potter · · Score: 2

    I know it's been talked about before, but it seems odd to try to buy computers that have rapidly developing feature sets, such as CDRW, 3D video, USB ports, without some mechanism for the user to get the next version or three at a free or reduced cost. (Mind you, Tiger direct computerss are generally inexpensive, but this is true for all publishers).

    Certainly has having used the 286 processor, I know that computers has changed a lot in 7 or so years, and much of my 286, while not fully useless, doesn't fully cover what I need to know nowadays for computing. I've been hestitent to buy the more recent computers because I see the same problem happening in another 2 or 3 years. As this review points out, some of the features on USB and 3D video when the next generation computers are released, making this computer useless.

    While code morphing can easily fix this problem, that's not the solution when you need to be productive. Maybe there should be some way to 'register' the computer, such that when the n+1(th) edition comes out, you can get it for a substanially less cost, because your initial purchase of the nth edition helped to make the n+1(th) edition possible. Or one could send in the cover of the nth edition and a S&H charge to get a copy of the new computer. Or something along these lines.

    If any computer book publishing company could do this, I would expect ORA to be the first to try such, given their helpfulness in the past and present. But with many standard 'things' moving so fast (XML, HTML, Perl, Python, etc), we need a some book upgrade mechanism in place ASAP.

    1. Re:Computers are moving targets by thaigan · · Score: 1

      That is beautiful! Also, life is a moving target and there are many books on it.

      --

      42
  15. Re: Eek. by AFCArchvile · · Score: 1
    I was asked to do things with Perl that Perl was neverdesigned to do...and they worked. That's the great thing about Perl, it's flexibility. Dynamic content, web-based e-mail, database searches, even content management systems (all things I've done, just to name a few). Perl's not always the BEST solution, but a good programmer can make it a VIABLE solution.

    You want to know why that statement frightens me? The same thing was said about Java. Even my mother cringes when I mention something that's written in Java; ergo, the connotation of Java translates into one word: lag.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  16. Uses for Perl by Jaeger · · Score: 1
    Which is why you need to take a look at Perl and maybe save yourself some time next time you feel the need to parse some resonabally-sized text file. Perl is good for many things, that's why whe call it the Swiss Army chainsaw. Sure, you can do almost anything it does with Python or a suitable collection of awk, sed, and grep, but putting it into one comprehensive package makes it probably more elegant than duct-taping any of the shell commands together with pipes.

    I used to write text-processing code in basic long long ago and fell immediatly in love with Perl when I picked up the second edition of the Camel Book. It was a while before I got around to using Perl for any serverside stuff.

    I'm not saying everyone will find Perl useful for everything, but it can be useful for very many things, not just server-side Slashcode.

  17. Re: Eek. by the+Man+in+Black · · Score: 1

    I'm the first to admit that a serious Perl-based enterprise-level app won't be the most lightning-fast thing on the block, but I always back that statement up with it depends on how it's coded. Cheapo clients that wouldn't spring for a ColdFusion server for their sites were in no position to whine about a difference of a few seconds in process time. But I'm getting away from the point...

    A programmer who knows what he's doing CAN write a viable app. Java's issues aren't in the code, they're in the VM (AFAIK).

    --Just Another Pimp A$$ Perl Hacker

  18. Slashcode Re:Would I walk a mile for a camel? by StandardDeviant · · Score: 2

    No offense to the people who took the time out of their lives to write slashcode, but IMHO it's a pretty bad example of a big application written in perl.

    Exhibit A: when a perl file starts out with "use strict; # ha ha ha, not really" or a similar comment

    Exhibit B: global hash vars used for configuration information that have names like %I (real descriptive, guys), and that are never centrally declared (ie. the components are assigned piecewise throughout a ton of different files, not one central declaration of "%I = (stuff)" in an obviously named file.) (note also that %I is not the sole conveyer of conf info, further muddying the waters)

    This is not to say that slashcode is bad in terms of utility, on the contrary, the slash engine itself works quite well (as /. and any number of other slashcode sites (like the 3 I've set up) demonstrate). Heaven help you if you want look at the code though...

    Like any language, a large part of it's suitability for a given task depends on the coder as well as the language's unique attributes. I've seen just as bad C and Python as I have perl.

    (In the unlikely event a central slashcode maintainer reads this post: dude, try enforcing (recommending, whatever) a minimum 4 or 5 character variable name convention! It'll increase the readability (and thus ease of contribution) a good bit. :-) )


    --

  19. No Merlyn, but keep Tom Christiansen? by Anonymous Coward · · Score: 2
    Merlyn's just the man. It can't be as good a book without him!

    I know Tom's skills are widely heralded by many, but I'm not all that fond of his "There is ONE way to do it - my way, and nothing else, damnit!" attitude. Sure, he's a smart guy, but that doesn't make it his place to dictate how something must be done in perl, when there are perfectly good alternatives.

    For instance, I recall one time when he flamed my butt off for using the OO syntax that's possible with the CGI.pm module. I pointed out that my code was perfectly valid, and no more or less valid than his "counter-example" to my code, which did not use the OO syntax. Nevermind the fact that even the docs that come with the module describe it as perfectly valid syntax.

    Sure, he's a smart guy, and probably overall an asset to the perl community, but watch out for the other edge of his "sword", so to speak.

  20. Re:Why? by prizog · · Score: 2

    >>Although that was a long-awaited update (although it disappointed in some respects compared with the original), the differences between 5 and 5.6 do not really warrant buying a new edition. <<

    At my local Perl Mongers meeting, I looked at the 3rd Ed Camel for ten minutes (I own the second). I was instantly convinced of its superiority. You may consider Unicode a minor feature, but for people who need to work in other languages than English, it's a major help. Further, Larry Wall is funny enough that a new edition (with new humor) is worth buying even if you never intend to use Perl (it helps to be a geek, tho - look in the 2nd ed. camel under the Glossary for "thread" to see what I mean).

  21. No mention in the review of the author change... by Snard · · Score: 1

    I have the 2nd edition, which lists Larry Wall, Tom Christiansen and Randal L. Schwartz as authors. I notice the new book has Jon Orwant in place of Randal; does this have anything to do with the past legal problems that he had experienced a while ago?

    --
    - Mike
  22. Good Book by Art_XIV · · Score: 1

    I bought the 3rd Edition of Programming Perl, and I think it is a much-needed revision. Better organized.

    Python is still replacing Perl in my work, though.

    • Why?
    • Python has better internal consistancy.
    • Python has more useable object-orientation.
    • Python is much more suitable for code that will have a lifespan of more than 2 days.
    • Python has no Tom Christiansen

    I'm going to miss CPAN, though. CPAN and Larry Wall are Perl's best features.

    --
    The only thing that we learn from history is that nobody learns anything from history.
    1. Re:Good Book by Bassthang · · Score: 2

      Don't blame Perl if your code is too messy to maintain. TIMTOWTDI - Perl lets you write bad code, but it lets you write great code too. Quick hacks for when quick hacks will do, Packages and O-O for when they won't.

      What's your problem with OO in Perl? It's really nothing to be frightened of (I was, but then I tried it). Create a Package, create an object, bless it into the Package. Easy-peasy. For the hard stuff get the Damian Conway book, it's a classic.

      I'll be buying Camel v3. I am one of the few people I know who learnt Perl without a Camel (I just read the perldocs. Probably not recommended though!).

      --
      "What I look forward to is continued immaturity followed by death."
    2. Re:Good Book by AMK · · Score: 2

      People are working on a Python equivalent; give us (me, mostly) a few months...

    3. Re:Good Book by Surazal · · Score: 2

      I've jumped between a bunch of programming languages when doing OO programming. Perl's way of doing things is more flexible than any other language I've seen. But if you want hard-core rules, well you can do one of two things:

      1. Program in C++ or Java or Python. No one's holding a gun to your head.
      2. Enforce the rules set out by the excellent documentation out there. It ain't that hard.

      Python, while kind of neat, is too hard-set in its rules. Perl is more like the Jazz of programming languages. Python is sort of like, well, classical music. I like Jazz better BTW :^)

      --
      --- Journals are boring; Go to my web page instead
  23. Other uses for Perl... by dmatos · · Score: 1

    One is the really handy 1337-speak translator. Impress your friends with how 'l337 you are! Type your regular text, run the translator and copy-paste your 1337-speak into ICQ, the Slashdot-submission boxes, a chat room, or any other web forum! See the example below!

    1 4m 50 31337! 1 0wn j00! 1 g07 r007!

    Similar "h4x0r" sentiments can be expressed with the same ease! Just think, no more annoying keyboard remapping! And, it's portable too! Anywhere you can install Perl, you can use your '1337-speak translator!

    To order now, please have your Mastercard or Visa ready, and dial the number at the bottom of your screen. Only $19.95 plus shipping and handling.

    --

    It may look like I'm doing nothing, but I'm actively waiting for my problems to go away.
    --Scott Adams
  24. Re:Why? by psxndc · · Score: 1
    Simple. I needed a Perl reference for both home and work. I keep the 2nd edition I bought a while ago at home (my hobby work rarely calls for unicode support) and my 3rd edition copy at work.

    psxndc

    --

    The emacs religion: to be saved, control excess.

  25. Since when did... by otis+wildflower · · Score: 1

    ... "What's not to like" become "What's to consider"? Maybe when /. got into the biz of generating revenue from links to the assorted bookstores perhaps? Must not displease our corporate sponsors by insinuating that we _not_ like something in a review...

    I call shenanigans _and_ wimpout on that one.. I'd not bring it up but I've seen it in the last few reviews and to my mind it's rather shady..

    (kind of like stocks being rated "Buy" or "Hold".. Dammit, if you mean sell, than say "Sell"!!!)

    <cult ref="JeffersonStarship">
    "We built this weblog... We built this weblog on news for nerds..."
    </cult>

    Your Working Boy,

    1. Re:Since when did... by chromatic · · Score: 1

      It's been that way in all of my reviews for at least the past six months. Call me wishy washy if you like, but I didn't care for the simple, black and white "What's Hot and What's Not?" the other phrases suggested.

      The image that's supposed to come to mind is, "Okay, that all sounds nice. Now why might I not want to buy or read this book?" Sometimes I point out flaws in books, but most of the time I try to clarify things that don't show up in a quick perusal. ("Hey, this book on the Gimp doesn't talk about plugins! I thought it would.")

      Besides, I don't often review books I don't like. I don't have the spare time.

      --

  26. Re:Why? by rm-r · · Score: 1

    ASP really isn't all that bad, so long as you make sure to use JavaScript as default instead of VBScript.
    Half the problem is of course the people who use a product, I knew a company where they would insist server-side stuff was done in VBS, and all client side in JS (may have been otherway round but who cares?) There reason? Their programmers were to stupid to know what was client of server side otherwise!

    --

    J-aims
    --
    Yo, whatever happened to peas? Join T( H)GS
  27. Oreilly Upgrade by Anonymous Coward · · Score: 1
    O'Reilly has had an upgrade policy for years.

    30%

    http://www.oreilly.com/order/upgrade.html

    1. Re:Oreilly Upgrade by turne10 · · Score: 2
      that's nice, but note that you can get most ORA books for roughly 40% off all the time at Bookpool

      --
      NTAGARA
  28. Perl 3rd Edition needs two things: by ellem · · Score: 1

    1--It needs to be on CD-ROM b/c commuting with it in your laptop bag sucks

    2--It needs in game saves, and so does Diablo II for that matter.

    --
    This .sig is fake but accurate.
  29. Wow, lots of negativity here for a great book by jonabbey · · Score: 2

    From the time I've spent reading through the 3rd edition, I've already come away with a lot of new insights that I somehow never picked up in my 8 years of working with the language. I highly recommend the 3rd edition as the most readable and informative to date. I like the 3rd edition book far more than I do the 2nd edition, and that alone justifies the publication of the new book, Perl 6 or no Perl 6.

    As for all the general flaming on Perl here, I have to say I'm a bit surprised.. Perl is still by far my favorite way of doing systems administration scripting, both on UNIX and NT. It seems like whatever I work on, a bit of Perl added to the mix Makes It Better. I can't count the number of times I have wished that /bin/sh was a Perl interpreter.. it would make bootstrapping install scripts on an arbitrary UNIX system a lot easier.

    Or are people here *that* enamored of autoconf?

    Anyway, best edition yet, and a damn fine job by Mssrs. Wall, Christiansen, and Orfant.

    1. Re:Wow, lots of negativity here for a great book by jonabbey · · Score: 1
      Anyway, best edition yet, and a damn fine job by Mssrs. Wall, Christiansen, and Orfant.

      And Orwant, too.

  30. Re:Typical Slashdot by jonabbey · · Score: 1

    Hm, I'll go to troll-feeding hell for this, maybe, but I have to disagree with you. I know people who have written significantly large and object-based systems in Perl, the bet-your-business kind, and it has worked out great for them. If you are a CS theory snob, I know a fellow who wrote an extensive graph theoretic analyzer for DNS data, using all the k00l algorithms and data structures. Admittedly, there were a lot of hashes involved... ;-)

    It is true that a great deal of the appeal of Perl is that you can just rush in and get your hands dirty quickly and make it go, and that can seem like (and be!) messy hackwork, but so what? Like Larry says, just because you can talk baby talk and get along doesn't mean that a Milton or a Shakespeare can't get his work done in the language also.

    And as others have noted, CPAN is the epitome of code re-use, and you can't get much more CS cred than that.

  31. Re:Fool me once by I+R+A+Aggie · · Score: 1
    Perl book number 3? No thanks. It is starting to turn into a racket. Sort of like a MicroRuby. SmallTalk, Java, Eiffel, oh oh, the list goes on.soft ``upgrade'' program. Alternatives? Many.

    You forgot one...

    ...the man page...

    It may not be quite the finished product that a printed book has, but it contains all the material.

    James

  32. Perl is the English of Computer Languages by DG · · Score: 3

    I love perl. Despite the current fashion for the peeps to distain it, it is a fantastic language for getting things DONE.

    And I don't mean just "quick'n'dirty" stuff either; I'm talking about enterprise applications that live for a long time. I have an LDAP replication daemon, written in perl, that has been running strong for two years, thank you very much.

    Perl is like English. It can be very dirty and ugly when written so, but it can also be so beautiful as to be sublime. And unlike "bondage and discipline" languages (*cough* Java *cough*) it gives you the freedom to code in an accent when needed - adapt the code to fit the problem, not the problem to fit the code!

    Those that complain that perl is illegible or hard to understand just haven't seen perl written as to be maintainable - tip: don't use Slashcode as a starting point.

    And as for Tom Christiansen... how horrible that there exists someone who stands up for code quality, and is willing to speak his mind!

    Long Live perl!

    --
    Want to learn about race cars? Read my Book
    1. Re:Perl is the English of Computer Languages by andrez · · Score: 1

      I agree. I've been using perl a lot since last year, mostly for web development. It's very easy to use, and powerful at the same time - the native treatment of regular expressions, the freely available modules that do almost everything (CPAN and others) and the native handling of lists and hashes makes perl a lovely language for rapid development. And yes, you can write readable and maintainable perl if you want to, the same way one would write easy to read and maintainable C or even C++. With a language as flexible as perl, writing good or bad code is a programmer's decision; one has the *freedom* of choosing one's way of programming, based on one's needs or will.

    2. Re:Perl is the English of Computer Languages by Ino · · Score: 1

      Heh - Perl - it isn't called for nothing "the Swiss Army Knife" of the sysadmin.

      I was using first shell-scripting (and I still do - for very small jobs) but once I've seen the light - well - my whole existence changed. I may not write very legible code (by the letter of the book/man/info) - but I'm slowly getting there.

      On a light issue - "YOU BASTARDS! - I have to fork() another 50$ (or so) to buy it!" :)

      --

  33. Re:It's just not the same (Moderator, get a clue!) by ackthpt · · Score: 3
    (Offtopic, my a**!)

    Randal Schwartz, beyond his Perl exploits, hacked his former employer Intel, allegedly stealing passwords, and did some hacking of O'Reilly Associates. Probably politics between him and ORA, due to his lack of discretion. His, the first ORA Perl book, was enjoyable, due to his offbeat hacker humor. A less dry experience is helpful when trying to learn from a book. Then, too much humor and it can be quite frustrating. I think he provided a good balance. Randal could often be found on USENET groups, to pick his brain on various Perl problems. Always a fun guy to chat with. I wouldn't be surprised if he reads Slashdot.

    --

    --

    A feeling of having made the same mistake before: Deja Foobar
  34. See my .sig by irix · · Score: 2

    My favourite exchange involving Tom and an AC on /.

    :)

    --

    Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
  35. Needs a chapter on changes from 5.005 to 5.6 by embobo · · Score: 1

    For one who is well-experienced in perl 5.005 a chapter giving info about the changes would be very useful. Please don't direct me to the CHANGES file. I want something that has been digested, similar to the way rest of the book presents the information in the perl man (or pod) pages.

    Another useful section would be tips on porting scripts from 5.005 and 5.6. Not just some brush-off like "most of your scripts should run unmodified." Certainly 5.6 has corrected some things that were awkward or buggy in 5.005. What are thay so I can audit my code to take advantage of the better handling in 5.6?

  36. Not for me by redd · · Score: 1

    Don't get me wrong - I'm one of the few people who have read Bjarne Stroustrup's "novel" from cover to cover, but if you say that someone who's done a "moderate" amount of programming such as vbscript is ok reading "programming perl" then either I'm wierd, or you're a perl expert reading a book for perl experts. Admittedly, the camel is an interesting read and a great reference, but it goes off on far too many tangents into educated matters to come anywhere near a perl beginner's resource. Rather than presenting clear examples on the knowlege learned so far, the author chooses to give complex examples on future code saying "don't worry about the bits you don't understand, I'll explain that later" which is nice, but does he expect the whole thing to suddenly just "click" a year later? Some people are less patient than that. As I say, "programming perl" is a great reference manual, but to use it for anything beyond that is silly. Even if you're an adept programmer, if you're a perl beginner, try "learning perl" or one of the other alternatives. g.

  37. Re:Python is superior by ellem · · Score: 1

    so python has in game saves?

    --
    This .sig is fake but accurate.
  38. Re:It's just not the same (Moderator, get a clue!) by phred · · Score: 3

    Hmm. How many incorrect statements can be made in a single /. comment? This one is in the running for the record this week anyway.

    1. Randal did not "hack his former employer." Randal was not an Intel employee; he was a sysadmin on contract. Those of you who have been contract sysadmins understand the issues.

    2. He can and does speak for himself on this issue, but my understanding is that he was performing fairly ordinary security reviews for his then-current client. Due to what might be described as a personality conflict with another Intel person, his activities were "escalated" (insert wry telecom reference) to the point where PHB CYA mode kicked in. The company over-reacted and the matter was referred to the supine Washington County, Oregon district attorney. A Keystone Kops scenario of Randal's home being invaded by Law Enforcement Personnel, weapons drawn, ensued. Randal tried to persuade them with his notion of the truth, but it didn't matter; the CYA mode is one-way and the company felt impelled to 'accede' to the county pressing charges.

    3. A show trial ensued with a judge misinterpreting both the law and the facts. Randal was convicted and received a suspended sentence and a major fine. His case is STILL ON APPEAL.

    4. The lesson is here is, never forget the famous cliche "no good deed goes unpunished." Especially for those of you involved in security-related system administration. Especially when you type su

    5. Hmm, come to think of it, that means all of us who manage even a single box for just one other person.

    6. Randal did not "hack" ora.com. Child, where did you get these notions? Actually, I will say this, when Randal ran crack on Teleport around that time, James Deibele told him to knock it off. Then Intel and Washington County decided to throw the book at him and try to make a big bad example out of him. The way things are going it could have meant a jail sentence. As for the fine and court costs, my recollection is: $300,000. Look at those zeroes. There are a lot of them.

    8. Much of the humor in the first Camel is a blend of both Larry Wall and Randal Schwartz. It remains a unique contribution to the literature of computer science.

    9. "Probably politics between him and ORA." No. Read my friend Steve Silberman's piece in Wired, and you will get a much clearer view of what is going on in the Perl world. I feel very badly for Randal that after all he's done this is the kind of treatment he gets, including completely lazy, ill-informed hearsay from the likes of this 'ackthpt'.

    10. "his first ORA book". No. Go read the cover, or better yet read the book. There are TWO names on the cover.

    11. "I wouldn't be surprised if he reads Slashdot." You know, the Search box is your friend.

    It would be so nice if everyone would engage brain before steering fingers. But this is asking for the world, I know . . .

    -------

    --
    Bill Gates Is My Evil Twin.
  39. Ruby and Perl [was Re:1067 pages] by Ino · · Score: 1

    I see your Ruby and Perl and I raise C :)

    --

  40. Career path [was Re:Why?] by Ino · · Score: 1

    Ermm ... I guess ASP and JS/VBS qualifies you for the title of "webmonkey"... good luck with your new career path^H^H^H^Hbranch.

    I still have to find the bloody utility of JS and VBS - aside the unofficial one - to crash the browsers.

    --

  41. Re:It's just not the same (Moderator, get a clue!) by EvlG · · Score: 2

    do you have a link to the piece in Wired about the perl world?

  42. Re:Where?? by funkman · · Score: 1
    http://www.perl.com/pub/v/documentation

    Most of this documentation also comes with the ActivePerl distribution.

  43. State of Oregon vs. Randal Schwartz by ackthpt · · Score: 2
    The previous poster has his particular spin on this whole thing. I've read Intel's original assessment of what transpired, after Randal's contract ended. I've also followed the court case and arguments from both sides. The worst of it is Randal showed poor judgement, and spin from both sides that makes Bush and Gore look like amature hour.

    A good place to find some info and related links Beyond Mark Morrissey's report it's kind of boiled down to a "Did not-Did too" argument. I've not taken any side in the debate, but it is a case worth reviewing if you ever feel the urge to test security without having a job description or contract outlining that as your responsiblity.

    --

    --

    A feeling of having made the same mistake before: Deja Foobar
  44. Your bank IS using it by DG · · Score: 2

    Oh, this is rich:

    "How do you formally verify a perl program for correctness?"

    You compare the output to the input and the program specifications, and if the program does what it is supposed to do, it is correct.

    Here's a tip from a real programmer, Java-boy: just because it *compiles* doesn't mean that it *works*

    --
    Want to learn about race cars? Read my Book