相关疑难解决方法(0)

如何在Perl中设置环境变量?

如何在Perl中设置环境变量?

我想设置$HOME一个不同于默认目录的目录.

perl environment-variables

18
推荐指数
2
解决办法
3万
查看次数

通过Perl脚本设置环境变量

我试图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不会改变.

我究竟做错了什么?

linux bash perl sh

6
推荐指数
3
解决办法
2万
查看次数

如何在两次 open 调用之间保持环境变量?

我有一个在 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正确设置了 的值VARget.bat无法使用它。


此外,如果我从cmd提示中连续运行我的两个批处理脚本,我会得到我期望的结果:

>set.bat
>set VAR=20
>echo 20
20
>get.bat
>echo …
Run Code Online (Sandbox Code Playgroud)

perl batch-file

4
推荐指数
1
解决办法
713
查看次数

标签 统计

perl ×3

bash ×1

batch-file ×1

environment-variables ×1

linux ×1

sh ×1