in reply to Re: Getting information from an array of hashes
in thread Getting information from an array of hashes

If I put in a line that says

print "$diary_data[0]\n";

it prints:


If I change the print slightly, like this:

print "@{$diary_data[0]}\n";

This is what I get:


Then if I try

print "%{$diary_data[0]}\n";

it gives me:


I don't think I'm understanding this correctly. The first example looks to me like a scalar reference, pulling data out of an array; but since the array contains hashes, then how does this get pulled out? Is this "ARRAY(0x3bfda0)" line an internal reference to how Perl remembers something?

Anyway, I'm off to read perldsc for a while.


Replies are listed 'Best First'.
Re: Re: Re: Getting information from an array of hashes
by AgentM (Curate) on Apr 25, 2001 at 23:46 UTC
    Try Data::Dumper. Thanks for posting this since this helps us out alot in disagnosing the problem. What you don't want to do is print references, since they're rarely helpful, but this case is an exception. We are shown that you probably have an array of arrays which you should be assigning to a hash, so my above suggestion for an assignment would be best.

    You're right. What you see being printed is an internal representation of Perl's memory management, which isn't very helpful to you- so use Data::Dumper to get the right debugging info. I think we even have a Tutorial here about it. Good luck!

    AgentM Systems nor Nasca Enterprises nor Bone::Easy nor Macperl is responsible for the comments made by AgentM. Remember, you can build any logical system with NOR.