in reply to How to dereference when hash key is referenece
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.
|
|---|