Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Change array to tiered hashref - brain teaser

by BrowserUk (Patriarch)
on Aug 08, 2008 at 00:41 UTC ( [id://703029]=note: print w/replies, xml ) Need Help??


in reply to Change array to tiered hashref - brain teaser

$aref = ['one', 'two', 'three', 'four'];; $href = { pop @$aref => 1 };; $href = { pop @$aref => $href } while @$aref;; pp $href;; { one => { two => { three => { four => 1 } } } }

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: Change array to tiered hashref - brain teaser
by wrinkles (Pilgrim) on Aug 08, 2008 at 09:10 UTC
    BrowserUK, I follow lines 1-3 (except for the ";;"). But I'm not clear on that last statement. Should "pp" print out the hash reference like in your last line? I can't find documentation for that usage, and I can't make my the script print. "print Dumper($href);" works for me.
      (except for the ";;")

      Two adjacent semi-colons act exactly the same as a single semicolon. Effectively there is a blank statement (noop) between them.

      The difference is that my REPL accumulates what I type until I finish a line with ;; at which point it executes everything I've typed so far as a single chunk of code.

      Should "pp" ... "print Dumper($href);" works for me.

      pp is just another Dumper()-like routine from Data::Dump.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
Re^2: Change array to tiered hashref - brain teaser
by jonathan415 (Novice) on Aug 08, 2008 at 07:02 UTC
    BrowswerUk: That was very good solution, and exactly what I was looking for. I kept trying to figure out how transversing a hashref will work, and your example really helped.

    I was very puzzled by this, but it makes a lot of sense, and cleared up everything for me in terms of understanding data structure. I spent the entire day on this with some really weird results. Now I understand why.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://703029]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-04-25 17:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found