Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

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.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2022-05-24 19:27 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (84 votes). Check out past polls.