3

cdシステムの特定のディレクトリから特定の機能を呼び出す必要があるため、主にコマンドであるシステムにいくつかの呼び出しを行っています。ただし、通話が終了すると、その通話の効果が失われることに気付きました。

たとえば、私が開始し/home/projectてから呼び出すとしましょう:

 system("setenv home/project/env/NeededEnvironment");
 system("make cfile.o");

2 番目のシステム コールは、ファイルのコンパイルに必要な環境を設定する最初の呼び出しを認識していません。で区切られた1つのシステムコールにそれらを入れてみまし;たが、同じ問題があります。保存する最初の呼び出しの効果を取得する方法はありますか?

4

2 に答える 2

7

Perl スクリプトを作成している場合は、Perl 自体を使用し、できるだけシェルアウトしないでください。

ディレクトリを変更する必要がある場合:

chdir 'some/other/dir';

環境変数を設定する必要がある場合:

$ENV{ SOME_VAR } = 'Some value';

アップデート

同等のシェルを使用してはならないその他のコマンドを次に示します。

  • mkdir
  • unlink
  • rmdir

誰もが知っておくべきモジュール:

  • File::Copy
  • File::Path
  • File::Basename
  • File::Spec
于 2013-07-17T14:40:36.493 に答える