我正在使用Perl版本5.22,而我正在尝试通过Perl脚本使用System函数设置一个Environment变量。 但是SET命令不起作用。 我正在使用这样的
my $return_val = system(" SET D:\Path\Folder ");
the return_val returns value 256.
答案 0 :(得分:0)
假设你清理了语法错误,你仍然会遇到一个问题,你似乎误解了环境变量和system
命令是如何工作的。
环境变量是传递给任何衍生子进程的进程级别值。他们不会从Child传给父母。
system
命令会生成子进程以执行某些操作。
你遇到的问题是,即使你在子shell中设置了环境变量,当那个子shell死亡时也是如此。将控制权传递给perl,环境变量随之消失。
如果您需要Perl可以传递给以后子进程的环境变量,请查看使用%ENV
哈希值。
如果您想影响perl父进程的环境,那么您希望做的最好的事情是构建一个可由父进程自己处理的shell脚本,批处理文件等