I think it's interesting that with the correction of one syntactic problem (semicolon statement terminators within the list definition), the OPed code actually works... sorta. At least, it can be made to compile. The data structure desired by dirtdog is absent at the highest level, but at least the structure at lower levels is captured for possible future use.

c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my %Businesses = ( my %teams = ( NFL => { 'JETS' => 1, 'PATRIOTS' => 1, 'GIANTS' => 1 }, MLB => { 'YANKEES' => 1, 'METS' => 1, 'CARDINALS' => 1 }, ), my %restaurants = ( FASTFOOD => { 'WENDYS' => 1, 'MCDONALDS' => 1, }, FINEDINING => { 'GRILL 23' => 1, 'CAPITAL GRILL' => 1, }, ), ); dd \%Businesses; dd \%teams; dd \%restaurants; " { FASTFOOD => { MCDONALDS => 1, WENDYS => 1 }, FINEDINING => { "CAPITAL GRILL" => 1, "GRILL 23" => 1 }, MLB => { CARDINALS => 1, METS => 1, YANKEES => 1 }, NFL => { GIANTS => 1, JETS => 1, PATRIOTS => 1 }, } { MLB => { CARDINALS => 1, METS => 1, YANKEES => 1 }, NFL => { GIANTS => 1, JETS => 1, PATRIOTS => 1 }, } { FASTFOOD => { MCDONALDS => 1, WENDYS => 1 }, FINEDINING => { "CAPITAL GRILL" => 1, "GRILL 23" => 1 }, }

What would you need to do to make this appproach work more or less as originally intended? One way:

c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my %Businesses = ( teams => my $teams = { NFL => { 'JETS' => 1, 'PATRIOTS' => 1, 'GIANTS' => 1 }, MLB => { 'YANKEES' => 1, 'METS' => 1, 'CARDINALS' => 1 }, }, restaurants => my $restaurants = { FASTFOOD => { 'WENDYS' => 1, 'MCDONALDS' => 1, }, FINEDINING => { 'GRILL 23' => 1, 'CAPITAL GRILL' => 1, }, }, ); dd \%Businesses; dd $teams; dd $restaurants; " { restaurants => { FASTFOOD => { MCDONALDS => 1, WENDYS => 1 }, FINEDINING => { "CAPITAL GRILL" => 1, "GRILL 23" => 1 }, }, teams => { MLB => { CARDINALS => 1, METS => 1, YANKEES => 1 }, NFL => { GIANTS => 1, JETS => 1, PATRIOTS => 1 }, }, } { MLB => { CARDINALS => 1, METS => 1, YANKEES => 1 }, NFL => { GIANTS => 1, JETS => 1, PATRIOTS => 1 }, } { FASTFOOD => { MCDONALDS => 1, WENDYS => 1 }, FINEDINING => { "CAPITAL GRILL" => 1, "GRILL 23" => 1 }, }

I know not of what possible use is this revelation.


Give a man a fish:  <%-{-{-{-<


In reply to Re: [OT] How to define and deref hash of hash of hash by AnomalousMonk
in thread How to define and deref hash of hash of hash by dirtdog

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.