http://qs321.pair.com?node_id=892988


in reply to How to localize conditionally?

You could use goto or the blockless version of if:

local $ENV{BLAH} = 42 if $DO_MAGIC; libcall();

or

goto LIBCALL if (! $DO_MAGIC); local $ENV{BLAH} = 42; LIBCALL: libcall();