如何在 Perl 中修改 @INC

如何在 Perl 中修改 @INC

我正在尝试从源代码安装 Perl(因为我的服务器没有连接到互联网),并且在执行“make install”时..它停止在:

Can't locate DWIM.pm in @INC (you may need to install the DWIM module) (@INC contains: lib dist/Exporter/lib .).
BEGIN failed--compilation aborted.

注意:我之前安装了 DWIM perl。

现在当我这样做时

[root@ctl perl-5.22.2]# perl -e "print \"@INC\""
/opt/dwimperl-linux-5.20.1-10-x86_64/perl/lib/site_perl/5.20.1/x86_64-linux /opt/dwimperl-linux-5.20.1-10-x86_64/perl/lib/site_perl/5.20.1 /opt/dwimperl-linux-5.20.1-10-x86_64/perl/lib/5.20.1/x86_64-linux /opt/dwimperl-linux-5.20.1-10-x86_64/perl/lib/5.20.1

DWIM 文件位于

[root@ctl perl-5.22.2]# find / -name DWIM.pm
/opt/dwimperl-linux-5.20.1-10-x86_64/perl/lib/site_perl/5.20.1/DWIM.pm

我想要的是如何在 perl 中修改 @INC 以便它找到 DWIM.pm ?

答案1

您可以通过将其路径添加到 PERL5LIB 环境变量来完成此操作:

export PERL5LIB=/opt/dwimperl-linux-5.20.1-10-x86_64/perl/lib/site_perl/5.20.1

答案2

当我需要创建模块或库时,我使用以下解决方案更改 @INC 路径:

  1. 我在 @INC 检查的地方放置了一个链接。在 ubuntu 上,我们有 /etc/perl.conf。然后我在此目录中创建一个指向我的模块的链接。示例:cd /etc/perl; ln -s /data/perl/Speak.pm ./

  2. 或者,我更改 PERL5LIB 变量的内容。示例:cd /data/perl ;导出 PERL5LIB=.

  3. 或者,我在我的 Perl 程序中包含以下行。示例:使用 lib '/data/perl/'

所有这些解决方案对我来说都很有效。

相关内容