如何在Perl中设置环境变量?
我想设置$HOME一个不同于默认目录的目录.
我试图LD_LIBRARY_PATH通过以下方式通过Perl脚本设置环境变量:
我创建了.profile下/root
.profile有一个export命令说:
export LD_LIBRARY_PATH=/
Run Code Online (Sandbox Code Playgroud)
我的Perl脚本是test.pl,它具有:
#!/usr/bin/perl
system(". /root/.profile");
Run Code Online (Sandbox Code Playgroud)
当我执行时./test.pl,LD_LIBRARY_PATH不会改变.
我究竟做错了什么?
我有一个在 Windows 上运行的 perl 代码。此代码调用open两次以执行两个不同的批处理文件。第一个设置环境变量,第二个需要使用它。不幸的是,设置为变量的值在两次调用之间丢失了。
这是我的 Perl 代码。
my $hdl;
open($hdl, "set.bat |");
while(my $line = <$hdl>) {
print("$line\n");
}
close($hdl);
open($hdl, "get.bat |");
while(my $line = <$hdl>) {
print("$line\n");
}
close($hdl);
Run Code Online (Sandbox Code Playgroud)
我set.bat设置环境变量的文件:
set VAR=20
echo %VAR%
Run Code Online (Sandbox Code Playgroud)
而 myget.bat使用环境变量:
echo %VAR%
Run Code Online (Sandbox Code Playgroud)
当我运行 perl 代码时,结果如下:
>perl my_code.pl
>set VAR=20
>echo 20
20
>echo
ECHO is on.
Run Code Online (Sandbox Code Playgroud)
我们可以看到set.bat正确设置了 的值VAR但get.bat无法使用它。
此外,如果我从cmd提示中连续运行我的两个批处理脚本,我会得到我期望的结果:
>set.bat
>set VAR=20
>echo 20
20
>get.bat
>echo …Run Code Online (Sandbox Code Playgroud)