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!