in reply to Hash dereferencing in a loop

willjones:

The problem you're having is that $hashRef is a reference to a hash, it's not a hash itself:

my %hash = (a=>1, b=>2); my $hashRef = { c=>3, d=>4 }; # For a hash, you can reference the item as you expect: my $v = $hash{a}; # For a hash ref, you need to either use a double $, or # use an arrow: $v = $hashRef->{c}; $v = $$hashRef{c};

You can use a reference to manipulate a hash, too:

# Get a reference to %hash $hashRef = \%hash; $v = $hashRef->{a}; # $v now holds 1

...roboticus

When your only tool is a hammer, all problems look like your thumb.