Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: What would you change?

by Porculus (Hermit)
on May 17, 2008 at 21:20 UTC ( [id://687143]=note: print w/replies, xml ) Need Help??


in reply to Re: What would you change?
in thread What would you change?

Rather than dealing with an appalling mess of curlies and sigils...

I can't recall ever wanting to take a slice of a hashref myself, but this line aroused my curiosity, so I investigated to see just how bad it could be.

First I went for the naive approach:

my @stuff = @$href{ qw/key1 key2 key3/ };

And was rather surprised to discover that I'd got it right first try!

Perhaps the reason this seems intuitive to me and not to you because I already habitually write $$href{key1} rather than $href->{key1}, so I'm used to using double sigils to dereference things? (Henceforth I shall use this consistency as an argument in favour of my preferred syntax!)

Replies are listed 'Best First'.
Re^3: What would you change?
by rudder (Scribe) on May 18, 2008 at 03:34 UTC

    For extra clarity (to me, anyway), I prefer to write it as:

    my @stuff = @{$hashref}{ qw(key1 key2 key3) }; # or my @keys = qw(key1 key2 key3); my @stuff2 = @{$hashref}{ @keys };

    (with the extra curlies). For some reason I never was crazy about the arrow shortcut here. In fact... umm... how do I correctly write the above using the arrow? I can't get it to work.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-24 19:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found