Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: How to localize conditionally?

by JavaFan (Canon)
on Mar 13, 2011 at 20:40 UTC ( #892994=note: print w/replies, xml ) Need Help??

in reply to How to localize conditionally?

local $ENV{BLAH} = condition ? 42 : $ENV{BLAH};

Replies are listed 'Best First'.
Re^2: How to localize conditionally?
by ikegami (Pope) on Mar 14, 2011 at 14:28 UTC
    The library checks for existence, so that doesn't work. You'd need
    local %ENV = condition ? (%ENV, BLAH=>42) : %ENV;

      Did you test it? It works for me.

      - tye        

        No, but how can one assign to a hash element that does not exist? Well, %ENV is magical, so let's test it out.

        $ perl -wE' my $condition = 0; say exists($ENV{BLAH}) || 0; local $ENV{BLAH} = $condition ? 42 : $ENV{BLAH}; say exists($ENV{BLAH}) || 0; ' 0 1

        So I was right

        This is perl 5, version 12, subversion 2 (v5.12.2) built for i686-linu +x

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2020-07-06 21:48 GMT
Find Nodes?
    Voting Booth?

    No recent polls found