Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Debugging Perl by Martin Brown - Snapshot
The good
  • Covers general Perl traps and some internals
  • Offers suggestions for programming style and design
  • Ideas for writing more reliable and maintainable code
  • Tips for cpu and memory optimizations
  • Platform specific issues - particularily Windows
The bad
  • Rewarms existing documentation such as perltrap and perldiag
  • Some typos and errors
  • Thin coverage of actually using the Perl Debugger
  • Material strays from the bounds of debugging and optimization and style
As Perl programmers we can never work hard enough on writing reliable and, dare I say, bug free programs. I feel Martin Brown's book Debugging Perl would be a suppliment for someone so motivated.

Although the title suggests a 1000 and 1 ways to use the Perl debugger, it is more than that. It is about techniques and approaches to write code with less bugs in addition to debugging existing code. Brown provides coverage of Perl internals topics, programming style and techniques. He also addresses some issues to do with code optimization and efficiency issues.

Prior to reading Debugging Perl I was not aware of the multitude of debugging output flags that you can use when executing a Perl program. I have dabbled with other subjects such as profiling and compiler backends, but was pleased to see Brown covering these and adding to my understanding of them. The term debugging is a loaded one and subject to many interpretations. For some debugging might mean findind the failure in their program. A syntax error or a runtime error. Others it might be trying to figure out why their memory is getting chewed up or they are running short of CPU time. You might even be contemplating bugs waiting to happen in someones scary code.

Granted, we all have our own programming styles. And from that perspective I view Brown's book as:

  1. alternate explainations on familiar Perl topics
    such as: Perl internals and traps
  2. suggested coding styles
  3. suggestions on reliable coding techniques
  4. an introduction to topics you might have skipped in the past
With a subject as broad as debugging and reliable coding you are going to have to pick and choose what is important to you and what you will ultimately decide to adopt and what you will disregard.

All and all, I would suggest that this is an solid supplement to your collection of O'Reilly books and is of value to those who wish to become a better and better Perl programmer. Scan it over the next time you're at your local bookstore and decide for yourself!

  Table of Contents for Debugging Perl

  Chapter 1: Introduction.
  Part I: Perl Logic and Syntax.
  Chapter 2: How Perl Parses a Statement.
  Chapter 3: Variable Problems.
  Chapter 4: Regular Expression Traps.
  Chapter 5: Using Abstraction as a Design Methodology.
  Chapter 6: Language/Platform Migration Guide.
  Part II: Error Trapping.
  Chapter 7: Basic Error Trapping.
  Chapter 8: Using Pragmas and Warnings.
  Chapter 9: Manual Degbugging Techniques.
  Chapter 10: The Perl Debugger.
  Part III: Optimizing Your Code.
  Chapter 11: Manual Optimization.
  Chapter 12: Automatic Optimization.
  Part IV: Testing Your Code.
  Chapter 13: Building a Test Harness.
  Chapter 14: Breaking Your Code.
  Part V: Appendices. 
Update: Read Linux Journal's review that jmcnamara so excellently supplied. After reading Paul's comments and I revised my review. Although, I feel that Paul's review is pretty harsh I can see how some people might see the book from his perspective. Personally, I still feel that Debugging Perl has value in my library and has given me my money and time's worth.

In reply to Debugging Perl: Troubleshooting for Programmers by jlawrenc

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others browsing the Monastery: (8)
    As of 2020-05-30 11:25 GMT
    Find Nodes?
      Voting Booth?
      If programming languages were movie genres, Perl would be:

      Results (171 votes). Check out past polls.