Main Content

Debugging and Data::Dumper in Perl

Archive - Originally posted on "The Horse's Mouth" - 2008-11-02 02:24:27 - Graham Ellis

I'll admit it - I'm not a great fan of debuggers, preferring to write well structured code, and check it out with a few test / intermediate print statements. You'll often find I code:
    $trace and print (something);
in Perl, and this allows me to add a line
    $trace=1;
at the head of my program to turn my own tuned debug mode on, then to comment the line out (or set the variable to zero) to turn my debug mode off.

There are, though, a few occasions where even I will admit that the -d option to Perl - calling in the debugger - can be useful.

I was also reminded on Friday of the Data::Dumper module, which allows you to convert the contents of a variable into a printable string of source code - in other words to let you display a variable's content. The module is shipped with Perl, and will even dump out objects. Here's an example of it in use:

use Data::Dumper;
print Dumper($rover);


And some output from that:

$VAR1 = bless( {
  'breed' => 'Parrot',
  'hf' => 4,
  'name' => 'Rover',
  'age' => 12
  }, 'beast' );


The full source code is here with the Perl module it uses available here