PERL5LIBの設定が必要ですか?

PERL5LIBの設定が必要ですか?

次のシステムサービスファイルを古いサーバーから新しいサーバーにコピーしています。私はPerlに初めてアクセスし、サービスファイル内の(/usr/local/asspエントリに加えて)移動する必要がある他のエントリを理解しようとしています。

ファイルにPERL5LIB =行が含まれていますが、その機能が何であるか、必要なのかわかりません。古いサーバーには/root/perl5/lib/perl5にファイルがありましたが、それが何をしているのかわかりません。新しいサーバーにはこのディレクトリはありません。古いサーバーはCentOS7(perl 5.16.3)で、新しいサーバーはAlmaLinux9(perl 5.32.1)です。私はこれが互換性に関連していると思いますが、それを理解することはできません。

このディレクトリを再作成する必要がありますか? PERL5LIBラインを変更する必要がありますか?

[Unit]
Description=AntiSpam SMTP Proxy
After=network.target

[Service]
Type=
Environment=PERL5LIB=/root/perl5/lib/perl5/
ExecStartPre=-rm -f /usr/local/assp/pid
ExecStart=/usr/bin/perl /usr/local/assp/assp.pl /usr/local/assp/
ExecStopPost=-rm -f /usr/local/assp/pid

[Install]
WantedBy=multi-user.target

ベストアンサー1

プログラムperlには、次の内容を含めることができますuse IO;。これは言語がモジュールにロードされるように指示します。

これらのライブラリを見つけるために使用できるデフォルトパスがありますperl -V

perlただし、これらの領域の外に手動でライブラリを配置する場合(非常に一般的な場合)、そのライブラリを見つける場所を教えてください。これは修正によってコード内で実行することも、環境変数(またはその問題の変数)を@INC設定することもできます。PERL5LIBPERLLIB

これを設定すると、PERL5LIB=/root/perl5/lib/perl5/プログラムはそれを実行するとデフォルトの場所をuse xyzzy;見つけます。/root/perl5/lib/perl5/xyzzy.pm

新しい環境でこの変数を設定する必要があるかどうかは、必要/usr/local/assp/assp.plに応じて異なります。私たちはこの質問に答えることはできません。

おすすめ記事