
スクリプトがPerlモジュールを見つけることができないので、@INCにパスを設定したいと思います。要件は、スクリプトにモジュールパスを直接含めることができないことです。だから@INCに直接モジュールパスを追加したいと思います。私ができる方法はありますか?
また、 ~/.bash_profile 、 ~/.bashrc 編集を試みました。ただし、@INC にはパスは追加されません。
答え1
いくつかの方法があります:
- 次のように呼び出されます
perl -Ipath script.pl
- 次のように呼び出されます
PERL5OPT=path script.pl
- グローバル設定
export PERL5OPT=path
(他のスクリプトにも影響します.profile
)PERL5OPT=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 ".";