in reply to General Debugging Tips

  1. Break the code up into manageable chunks. If it's "well-documented", 10-1 it's already this way.
  2. Find a bug in one manageable chunk.
  3. Write a test for it using Test::More.
  4. Make sure the test fails.
  5. Because the code has to be in this manageable chunk (no more than 1-5k lines), it shouldn't be hard to zero in on the problem.
  6. Fix the problem.
  7. Rerun the test and see it pass.

You now have the beginnings of a test suite. Never remove a test, unless the requirements change. Every test should always pass, unless you wrote it because you're changing something, in which case it should fail until you finish changing it.

That's it. Nothing to it.


  • In general, if you think something isn't in Perl, try it out, because it usually is. :-)
  • "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"

Replies are listed 'Best First'.
Re^2: General Debugging Tips
by cbrandtbuffalo (Deacon) on Jun 10, 2005 at 11:55 UTC
    Embedded in [id://dragonchild]'s response is the suggestion that the skills you really want to hone are testing skills. You'll find a bunch of information on PerlMonks about testing with Perl and it really is becoming a crucial tool for a coder. Basically, testing is learning to pour your debugging skills into scripts so everyone can benefit (including you when you are looking at code later).

    The good news is that test scripts are often smaller scripts so you'll be comfortable with them.