when getting into creating nested data-types like hashes of arrays containing hashes and on and on...
I always check my data-structure with a dumpvalue sub.
Since I mostly work with HTML output my sub may look different than what you will use... but the point is that when you are venturing into the realm of creating complex data-types you should have an easy way to check that you are in fact doing what you intended.
My code is below.
#!/usr/bin/perl
use Dumpvalue;
sub dump_ref
{
my $ref = shift;
my $dumper = new Dumpvalue;
print "Content-Type:text/html\n\n";
print "<pre>";
$dumper->dumpValues($ref);
print "</pre>";
exit;
}
Dumpvalue should be already installed with perl so there is nothing to download.
the function should be passed a reference to the data you want to investigate.
so say we have a hash called orders with nested data in it.
call dump_ref with a reference to %orders
dump_ref(\%orders);
Hope that helps anyone working with nested data-types.