1

したがって、別のスクリプトからいくつかのperlスクリプトを呼び出す必要があります。ターミナルから機能させるには、bashに移動して、PATHを変更する必要があります。

 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;

何か案は?

4

2 に答える 2

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

確かに正しいです。shこれはPerlの'sと同等です

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

あなたが言ったこととは反対に、後続execはこのパスを使用して実行可能ファイルを見つけ、その実行可能ファイルは更新されたPATHを参照します。

あなたは問題を誤診したようです。実際に何が起こっているのですか?exec失敗していますか?もしそうなら、それはどのようなエラーを返しましたか?

于 2012-11-14T03:00:13.337 に答える
1

2つの解決策:

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

また

my $myPath = "/foo/bar";
exec("$myPath/command");
于 2012-11-14T02:53:21.370 に答える