http://www.perlmonks.org?node_id=658253

tcf22 has asked for the wisdom of the Perl Monks concerning the following question:

I don't even know if this is possible, but hopefully it is. This script needs to run on Win32 and Win64. I need to run a perl script from a shell and change the environment of the shell.

I tried
system("set VAR=5");
but that has no effect on the parent as I would suspect.

I have also tried using Win32::Process::Info to get the parent PID(hopefully there is an easier way).
use Win32::Process::Info; my $pi = Win32::Process::Info->new (); my %subs = $pi->Subprocesses(); my $ParentPID; foreach(keys %subs) { foreach my $pid(@{$subs{$_}}) { if( $pid == $$ ) { print "Parent PID is $_\n"; $ParentPID = $_; } } } my @info = $pi->GetProcInfo($ParentPID); use Data::Dumper; print Dumper \@info;
but I don't know what to do with the parent PID to chenge the environment.

Thanks.

- Tom