Sometimes you need to look inside your complex data structures to see what the settings are. One of the most useful ways to examine a data structure is by means of the Data::Dumper module. This module comes standard with all recent versions of Perl. Here is the summary and part of the synopsis and description as output from the perldoc Data::Dumper command: NAME Data::Dumper - stringified perl data structures, suitable for both printing and "eval" SYNOPSIS use Data::Dumper; # simple procedural interface print Dumper($foo, $bar); (...) DESCRIPTION Given a list of scalars or reference variables, writes out their contents in perl syntax. The references can also be objects. The contents of each variable is output in a single Perl statement. Handles self-referential strucTures correctly. The return value can be "eval"ed to get back an identical copy of the original reference structure. (...) This output of a two-dimensional array illustrates its use: use Data::Dumper; $array = [ ]; # Initialize the array for($i=0; $i < 4 ; ++$i) { for($j=0; $j < 4 ; ++$j) { $array->[$i][$j] = $i * $j; } } # Print the array "by hand" for($i=0; $i < 4 ; ++$i) { for($j=0; $j < 4 ; ++$j) { printf("%3d ", $array->[$i][$j]); } print "\n"; } # Print the array using Data::Dumper print Dumper($array); This produces the output: 0 0 0 0 0 1 2 3 0 2 4 6 0 3 6 9 $VAR1 = [ [ 0, 0, 0, 0 ], [ 0, 1, 2, 3 ], [ 0, 2, 4, 6 ], [ 0, 3, 6, 9 ] ]; You can make a nicer display by knowing exactly what the data is and in what form to write it out. Data::Dumper can also display the data in a fairly readable format (and there are several options as to how the data is displayed). In addition, Data::Dumper allows you to dump a data structure out to a file and then read it in to another program. See the perldoc Data::Dumper manpage for more details. You can also print out an array of arrays @array by printing each row one at a time. Remember that each row is an anonymous array, so each entry of the @array array is a reference to an anonymous array: @array = ( [0, 0, 0, 0], [0, 1, 2, 3], [0, 2, 4, 6], [0, 3, 99, 9] ); for $anon (@array) { print "@$anon\n"; } See the Perl perllol reference page for more information on initializing and printing arrays of arrays. |