所以我需要从另一个脚本调用一些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;
有什么想法吗?
答案 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");