如何解决 Perl 中的 @INC 相关问题

Posted

技术标签:

【中文标题】如何解决 Perl 中的 @INC 相关问题【英文标题】:How to resolve @INC related issue in Perl 【发布时间】:2019-10-02 13:25:47 【问题描述】:

运行 perl 脚本时出现以下错误。

Can't locate File/stat.pm in @INC(您可能需要安装 File::stat 模块)(@INC 包含:/etc/perl /usr/local/lib /x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64 -linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) 在 /usr/local/share/perl/5.24 .1/Path/Class/Entity.pm 第 9 行。

我已尝试通过 CPAN 安装来安装缺少的软件包。 当我尝试 CPAN 时,我收到以下错误

Can't locate File/Find.pm in @INC(您可能需要安装 File::Find 模块)(@INC 包含:/etc/perl /usr/local/lib /x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64 -linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) 在 /usr/share/perl/5.24/CPAN /CacheMgr.pm 第 8 行。

你能请任何人帮我解决这个问题吗?

【问题讨论】:

你使用的是什么操作系统? Debian (Stretch) 9.9 所需的软件包已经安装并位于以下路径 /usr/share/perl5 。 @INC 数组也有这个路径。但是,我仍然收到此错误。我不知道缺少什么?。 stat.pm 文件的绝对路径是什么?应该是这样的:/usr/share/perl/5.24/File/stat.pm Find.pm 位于路径 /usr/share/perl/5.24.1/File/Find.pm ,Stat.pm 位于以下路径 /apps/sl-gehirn/gehirn /local/lib/perl5/Path/Class/File/Stat.下午 【参考方案1】:

自 1997 年 Perl 5.004 以来,File::stat 一直是标准 Perl 发行版的一部分。永远不应该单独安装它。如果您发现自己处于这种情况,那么您的 Perl 安装出现了严重错误,我强烈建议您使用 Linux 发行版提供的预构建软件包从头开始重新安装。

【讨论】:

以上是关于如何解决 Perl 中的 @INC 相关问题的主要内容,如果未能解决你的问题,请参考以下文章

(perl) 终端 (Mac) 如何在 @INC 中找到 LWP...?

Perl 的@INC 是如何构造的? (又名影响 Perl 模块搜索位置的所有方法是啥?)

如何在 Perl 中解压缩双精度值?

linux centos环境下,perl使用DBD::Oracle遇到报错Can't locate DBDOracle.pm in @INC 的解决办法

Perl - 如何查看Perl模块路径

在 Perl 中,我如何解压缩到多个变量?