0

他のシェルスクリプト内でperlスクリプトを実行しようとしましたが、次の問題に直面しました。

@INCでnew.pmが見つかりません(@INCに含まれるもの:/usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 / usr / share / perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 / usr / local / lib / site_perl

追加のローカルperlスクリプト、つまりPerlスクリプト(test.pl)の「new.pm」のパスを具体的に設定しましたが、それでもエラーが表示されます。(perl -V)は私のローカルPerlのパスを示しています。さらに、コマンド「PERL5LIB」を使用して、プロファイルファイルに「new.pm」のパスを設定しました。

ただし、コマンドラインで次のようにスクリプトを実行すると、次のようになります。

./test.pl 

それは魅力のように機能します。

PS。シーバンラインが正しく設定されています。PSS。プラットフォーム:linux、OS_vers = 2.6.32-5-amd64

4

1 に答える 1

3

これには複数の方法がありますが、パスの設定はその 1 つではないと思います。「new.pm」が/my/libディレクトリにある場合は、次のいずれかを試してください。

perl -I/my/lib script-that-calls-new.pl

また

use lib '/my/lib'; ## add this before "use new;"

また

BEGIN { push @INC, '/my/lib'; }; ## same as "use lib" example

また

export PERL5LIB=/my/lib:$PERL5LIB

パスは、実行可能ファイルを探す場所をシェルに指示します。上記の例はすべて、perl にライブラリーの場所を教えています。

于 2013-01-18T15:30:05.680 に答える