in reply to How to dereference when hash key is referenece

Ashok,

Here is another explanation, or rather, a visual of what is going wrong with your code above --

#!perl -w use strict; use warnings; use Data::Dumper; my $array_ref = [1, 2, 5, 7, 4]; my %hash; $hash{$array_ref} = 'ashok'; print Dumper($array_ref); print Dumper(\%hash); ------ output -------- $VAR1 = [ 1, 2, 5, 7, 4 ]; $VAR1 = { 'ARRAY(0x2253b8)' => 'ashok' };

As you can see, in your hash, you have unintentionally tried to create a key using an array... as others have said, a key can only be a scalar. Whenever in doubt, try to use Data::Dumper to dump out what Perl is encountering. It is like debugging, without the debugger (wishes debugger were easier).

Good luck.

--

when small people start casting long shadows, it is time to go to bed