O'Reilly logo

Perl for Web Site Management by John Callender

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Using Data::Dumper

Next comes some interesting Perl archaeology:

# use Data::Dumper;
# print Dumper(\%page_data);

There, entombed by a layer of commenting, is a relic of a previous era in the life of this script. When I had developed it sufficiently far to have created the &load_pages subroutine, which populated the %page_data hash, I wanted to see what was being stuck in there. Enter the Data::Dumper module, a standard Perl module written by Gurusamy Sarathy. Data::Dumper turns a data structure (like that contained in the %page_data HoH) into a chunk of Perl code that would, if evaluated, re-create that original data structure. This turns out to be really handy for development and debugging because it lets us easily print out a snapshot of our script’s data structure.

The Dumper function that Data::Dumper gives us takes as its argument a reference to the hash we wish to have represented as Perl code. In the example here, we produce that reference by sticking the backslash in front of the hash name, like \%page_data, as we learned how to do back in Chapter 11.

Here’s an example of what the Dumper function might print out:

$VAR1 = {
        '/w1/s/socalsail/cyberfair/leader/government/al_gore.html' => {
                                                                                
'name' => 'Al Gore',
                                                                                
'title' => 'Al Gore's Leader Profile',
                                                                                
'type' => 'cf',
                      
'content' => '<H2>Al Gore</H2>

<P>By: John C.</P>

<P>Al Gore was born on March 31, 1948, in Washington, D.C.</P>',

'writer' => 'nakasone/johnc',
 
'photographer' => 'nakasone/johnc'

},
(etc.)

Here’s how to interpret ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required