I own a perl subroutine which some other module calls. There is a shell script setjavaenv.sh and a batch script setjavaenv.bat which sets the environment variable JAVA_HOME. Now I need to invoke a java program from my subroutine using the JAVA_HOME set by setjavaenv.sh. Is there a way to do this without writing a new shell/bat script(which perhaps prints the value)?
my subroune {
#system("setjavaenv.sh") #Doesn't work since it probably spawns a new env.
my $javaHome = $ENV{JAVA_HOME};
system("$javaHome/bin/java MyProgram");
}