コンピューターで何か奇妙なことが起こった。/ usr / local/binの下にgperfをインストールしました。私がここで尋ねた質問に関連して、私は自分のコンピューターで実行されているperlスクリプトを持っていました。これには、次のようなフラグを持つgperfの行system()が含まれています。
perlファイル:
system("gperf ...") == 0 || die "calling gperf failed: $?";
ただし、どんなに頑張ってもgperfは実行されず、失敗したメッセージが出力されません。
デバッグするために私は次のようなものを試しました
system("echo \$PATH") == 0 || die "calling gperf failed: $?";
gperfをインストールした場所は含まれていませんが、インストールされていない場所/usr/local/bin/
のみを調べていることがわかりましたusr/bin
だから$PATH
間違っている...だから私はグーグルで見system()
て、ファイル内で/ bin / shを呼び出すのと同じであると思ったので、試し/bin/sh
て みたところ、信じecho $PATH
られないほど含まれていることがわかりました。/usr/local/bin/
だから私の質問は、system()の$PATHがどこで宣言されているのかということです。なぜボーンシェル内のものと違うのですか?