在perl程序中设置路径

在perl程序中设置路径,perl,Perl,我有一个bluehost服务器设置,正在尝试在perl程序中设置路径 print "Content-type: text/html\n\n"; my $output=`export PATH=\${PATH}:/usr/local/jdk/bin`; my output1=`echo \$PATH`; print $output1; 但是,它仍然只打印原始的$PATH。没有添加/usr/local/jdk。有人能告诉我我做错了什么吗?您正在创建一个shell,执行一个

我有一个bluehost服务器设置,正在尝试在perl程序中设置路径

 print "Content-type: text/html\n\n";
    my $output=`export PATH=\${PATH}:/usr/local/jdk/bin`;
    my output1=`echo \$PATH`;
    print $output1;

但是,它仍然只打印原始的$PATH。没有添加/usr/local/jdk。有人能告诉我我做错了什么吗?

您正在创建一个shell,执行一个shell命令,在shell中设置一个环境变量,然后退出shell而不使用环境变量。您从未更改过perl的环境。这将通过使用

local $ENV{PATH} = "$ENV{PATH}:/usr/local/jdk/bin";

但是,添加到路径末尾有点奇怪。

请注意,ikegami的回答只会在本地Perl脚本中设置路径,不会为调用Perl脚本的shell更改路径

如果您希望更改shell环境中的路径,那么您运行的下一个程序也将受益于此更改, 您必须使用“源代码”或“点空间”序列,
或者更好-在“.bashrc”或“.login”文件中对路径进行此更改。

@ikegami,请再次阅读我的答案-它与您的答案不矛盾。由于这个问题还不清楚,我只是强调,更改只会发生在Perl脚本上下文本身中,并且在完成后不会持续到脚本之外,即:在调用shell中。