Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Storing a Hash Made of Two Arrays in Another Hash

by tobyink (Canon)
on Jan 10, 2012 at 18:01 UTC ( [id://947207]=note: print w/replies, xml ) Need Help??


in reply to Storing a Hash Made of Two Arrays in Another Hash

Something like this?

use Modern::Perl; use Data::Dumper; my @field_names; my %master_hash; while (<DATA>) { chomp; if (1..1) { @field_names = split /\t/ and next; } my %this_hash; my @values = split /\t/; @this_hash{ @field_names } = @values; $master_hash{$values[0]} = \%this_hash; } print Dumper \%master_hash; __DATA__ Name Pet monkey John Biggles Steve Bubbles Henry Binky

In your particular example, this line is wrong:

$tickets { $values[0] } = %tmp_hash;

You're trying to assign a hash into a scalar slot. You need to assign a reference to the hash instead:

$tickets { $values[0] } = \%tmp_hash;

See perldoc perlref and perldoc perllol.

Replies are listed 'Best First'.
Re^2: Storing a Hash Made of Two Arrays in Another Hash
by BJ_Covert_Action (Beadle) on Jan 10, 2012 at 18:51 UTC
    Perfect! Worked like a charm. Thanks toby!

    I knew it was something simple, but it's been awhile since I built complex data structures in perl and I'm dusting off the cobwebs still.
Re^2: Storing a Hash Made of Two Arrays in Another Hash
by BJ_Covert_Action (Beadle) on Jan 10, 2012 at 18:10 UTC
    Yeah, I knew which line was wrong. I didn't know how to make that line right. Let me try the reference. Thanks!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://947207]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-04-23 19:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found