Both davorg and MZSanford have pointed out above that you're using symbolic references and hinted why that's a bad idea ;-) Just to complete the picture, here's what your code would look like using true or "hard" references.

use strict 'refs'; # Catches use of symbolic references, # though plain "use strict" would be even better # Quotes are not necessary on the LHS of => %simpsons = ( father => "homer", mother => "marge", son => "bart", daughter => "lisa", ); # Here's the code that uses symbolic refs: #$string = "simpsons"; #@array = ("simpsons"); #%hash = ("family" => "simpsons"); #print("$simpsons{father}\n"); #case1 prints "homer" #print("$$string{mother}\n"); #case2 prints "marge" #print("$$array[0]{son}\n"); #case3 err #print("$$hash{family}{daughter}\n"); #case4 # Here are the hard refs. $string = \%simpsons; @array = (\%simpsons); %hash = (family => \%simpsons); # Not necessary to quote variables to print print $simpsons{father}, "\n"; #case1 prints "homer" print $$string{mother}, "\n"; #case2 prints "marge" print $string->{mother}, "\n"; #also prints "marge" print ${$array[0]}{son}, "\n"; #case3 prints "bart" print $array[0]->{son}, "\n"; #also prints "bart" print ${$hash{family}}{daughter}, "\n"; #"lisa" print $hash{family}->{daughter}, "\n"; #also "lisa" print $hash{family}{daughter}, "\n"; #also "lisa"
For more information on the backslash operator for taking references and the syntax for getting at its contents, take a look at the doco on references.

HTH


In reply to Re: using other variables as keys to hash by VSarkiss
in thread using other variables as keys to hash by Ntav

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.