Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: Localizing hash keys in an AoH

by kennethk (Monsignor)
on Mar 15, 2013 at 22:49 UTC ( #1023789=note: print w/ replies, xml ) Need Help??


in reply to Re: Localizing hash keys in an AoH
in thread Localizing hash keys in an AoH

Very nice. I think this one would give my coworkers tremendous pause, but this will work in the general case, whereas NetWallah's solution fails if we have some more grotesque AoHoAoAoH thing going on.

Update: And it actually gives you tremendous control over localization scope, since you can stash the guard at whatever level you want. Nice.


#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.


Comment on Re^2: Localizing hash keys in an AoH
Re^3: Localizing hash keys in an AoH
by tobyink (Abbot) on Mar 15, 2013 at 22:58 UTC

    It could be made more readable. Defining entire packages within a sub is a trick I'm fond of, but I'm aware it's not everybody's cup of tea.

    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
Re^3: Localizing hash keys in an AoH
by tobyink (Abbot) on Mar 17, 2013 at 00:32 UTC

    Indeed, but you don't really need to wait for the guard to go out of scope. It's just a blessed object, so you can call $guard->DESTROY manually any time you like.

    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2014-08-01 04:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (256 votes), past polls