Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
Keep It Simple, Stupid
 
PerlMonks  

Re: Issue with env variables set through dos batch

by bart (Canon)
on Nov 06, 2012 at 12:14 UTC ( #1002464=note: print w/ replies, xml ) Need Help??


in reply to Issue with env variables set through dos batch

You can't set environment variables set in a program that you call using system (or backticks), and expect them to persist into the parent process. It just doesn't work that way. You'll have to find another way to store them somewhere; or pass them back to the parent (perl).

You can run a perl script in the child process, which can for example use DATA::Dumper or JSON to store multiple environment variables from %ENV, reliably, and either save that into a temporary file where your parent perl script can read it in and parse it easily; or output it on STDOUT so processing the data via backticks is possible. Hell, you can probably just simply use set as the last command in the batch script to get a complete list of environment variables.

BTW as $scriptDir is set to cwd it is unnecessary to use it in your call to system; though in Unix you will have to use "./" instead. And you can always use catfile from File::Spec or File::Spec::Functions to join parts from file paths portably.


Comment on Re: Issue with env variables set through dos batch
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2014-04-19 00:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (473 votes), past polls