Chapter 6. Manipulating Complex Data Structures
Now that we’ve shown the basics of references, we look at additional ways to manipulate complex data. We
start by using the debugger to examine complex data structures and then use
Data::Dumper to show the data under programmatic control. Next, we’ll show
how to store and retrieve complex data easily and quickly using Storable, and finally we’ll wrap up with a review of grep and
map and
see how they apply to complex data.
Using the Debugger to View Complex Data
The Perl debugger can display complex data easily. For example, we can single-step through one version of the byte-counting program from Chapter 5:
my%total_bytes;while(<>){my($source,$destination,$bytes)=split;$total_bytes{$source}{$destination}+=$bytes;}formy$source(sortkeys%total_bytes){formy$destination(sortkeys%{$total_bytes{$source}}){"$source => $destination:"," $total_bytes{$source}{$destination} bytes\n";}"\n";}
Here’s the data we’ll use to test it:
professor.hut gilligan.crew.hut 1250 professor.hut lovey.howell.hut 910 thurston.howell.hut lovey.howell.hut 1250 professor.hut lovey.howell.hut 450 ginger.girl.hut professor.hut 1218 ginger.girl.hut maryann.girl.hut 199
We can do this in any number of ways. One of the easiest is to
invoke Perl with a −d switch on the
command line:
myhost% perl −d bytecounts bytecounts−in Loading DB routines from perl5db.pl version 1.19 Editor support available. Enter h or `h h' for help, or `man perldebug' ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access