从perl更改PATH

时间:2012-11-14 02:48:24

标签: linux perl bash path environment-variables

所以我需要从另一个脚本调用一些perl脚本。为了让它从终端工作,我需要去bash,然后改变路径:

 export PATH=$PATH:/home/lsk250/www/portfolio

现在我需要将它作为CGI运行并从浏览器调用它,但显然当我尝试从浏览器调用脚本时,PATH未设置,因此脚本无法找到所需的程序。如何从perl脚本中更改PATH? 我尝试了以下内容,没有成功:

system "export PATH=\$PATH:/home/lsk250/www/portfolio";

$ENV{PATH} = '/home/lsk250/www/portfolio';
exec 'env',cwd().'/'.$0,@ARGV;

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

$ENV{PATH} = "$ENV{PATH}:/home/lsk250/www/portfolio";

确实是对的。它的Perl相当于sh

export PATH="$PATH:/home/lsk250/www/portfolio"

与您所说的相反,后续exec将使用此路径查找可执行文件,该可执行文件将看到更新的PATH。

你似乎误解了这个问题。什么是真正的幸福? exec失败了吗?如果是这样,它返回了什么错误?

答案 1 :(得分:1)

2个解决方案:

my $myPath = "/foo/bar";
exec("PATH=$PATH:$myPath command");

my $myPath = "/foo/bar";
exec("$myPath/command");