@INCで特定のパスを永久に設定する方法

@INCで特定のパスを永久に設定する方法

スクリプトがPerlモジュールを見つけることができないので、@INCにパスを設定したいと思います。要件は、スクリプトにモジュールパスを直接含めることができないことです。だから@INCに直接モジュールパスを追加したいと思います。私ができる方法はありますか?

また、 ~/.bash_profile 、 ~/.bashrc 編集を試みました。ただし、@INC にはパスは追加されません。

答え1

いくつかの方法があります:

  • 次のように呼び出されますperl -Ipath script.pl
  • 次のように呼び出されますPERL5OPT=path script.pl
  • グローバル設定export PERL5OPT=path(他のスクリプトにも影響します.profilePERL5OPT=path.pam_environment

答え2

変更して~/.bashrcもまだ環境に追加していない場合は、これをPATH行う最善の方法はPERL5LIB環境変数を使用することです。

すべてのシェルセッションが開始されるたびにこれを行うには、何が起こっても次の行を追加し~/.bashrc(シェルがbashであると仮定して)、スクリプトソースをインポートするか、新しいシェルセッションを開始します。

export PERL5LIB=/path/to/module

このスクリプト内でのみこれを行うには、shebangの後に次の行を追加します。

use lib '/path/to/module';

できるだけ早くこれを行うには、次のようにスクリプトを実行します。perl -I

perl -I /path/to/module script.pl

これらのメソッドはすべて、モジュールを含むディレクトリを次の場所に追加します。@INC

答え3

私はその単純な魂を見つけました。

プッシュ (@INC,/path) または移動解除 (@INC,'/path)

2番目の方法:ファイル自体でlib "/ path"を使用します。

答え4

たとえば、calling.plの最初の行を作成します。

use lib ".";

関連情報