Fair enough.
I'm also using Mac OS X (10.10.3) but, as I don't have local access to Oracle, I'm unable to run any tests for you.
Here's a few more thoughts and suggestions.
Using backticks (as shown in your update) will not be helpful.
The command within the backticks will be executed in a new process environment which will be discarded (and the old process environment restored) when completed. E.g.
$ XXX=unset perl -E 'say "$$: XXX=$ENV{XXX}"; print `export XXX=xxx; e
+cho \$\$: XXX=\$XXX`; say "$$: XXX=$ENV{XXX}"'
3494: XXX=unset
3495: XXX=xxx
3494: XXX=unset
Also from your update,
if setting $ENV{whatever} in a BEGIN block has no apparent effect,
then that BEGIN block is possibly being reached too late.
Try putting that BEGIN block earlier in the code.
Remember, BEGIN blocks are executed in FIFO order,
and use statements are
... exactly equivalent to
BEGIN { require Module; Module->import( LIST ); }
Consider writing env.t (or similar) with lines like:
ok $ENV{whatever} eq $whatever_expected_value, ...
Try setting environment values on the command line (like I did with XXX=unset above) prior to running your tests.
I'm not suggesting this as a solution, but it may provide some useful feedback.
You can set multiple values, e.g.
DYLD_LIBRARY_PATH=... ORACLE_HOME=... make test
Check if Dist::Zilla is performing actions based on what it considers to be tainted data (see perlsec).
This could affect your environment.
I'll also front-page this thread to try to get you a bit more coverage.
|