Perl 脚本无法在 @INC 中找到 Env.pm

Perl 脚本无法在 @INC 中找到 Env.pm

我正在尝试运行一个 Perl 脚本,该脚本在开头附近有

use Env '$Foo1', '$Foo2';

我收到以下消息:

无法在 @INC 中找到 Env.pm(@INC 包含:/usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 。)位于 ../path/to/Foo3 第 8 行

我试图找到 Env.pm 模块(find . -name Env.pm -print),但什么也没发生,它只是返回到命令提示符。

我正在使用 RHEL7 和 perl v5.16.3。

答案1

安装perl-Env包以获取Env.pm。

yum install perl-Env

您还可以使用 yum 的 whatprovides 功能查看哪些软件包提供了文件,

yum whatprovides */Env.pm

perl-Env-1.04-2.el7.noarch : Perl module that imports environment variables as scalars or arrays Repo        : base Matched from: Filename    : /usr/share/perl5/vendor_perl/Env.pm

答案2

RPM 打包有一个既定的标准,用于标记哪个包包含哪个 Perl 模块。格式为:perl(<NAME>)。因此,对于您的情况,您可以运行命令yum install 'perl(Env)',并查看它是否解析为 perl-Env 包。不幸的是,您不能仅仅依赖包名称本身,因为某些包提供多个模块,并且某些东西偶尔会进出主 perl 包。上述格式是一致安装正确包的最简单方法。

答案3

你也可以从 cpan central repo 安装 Env 模块,这相当于安装 rpm 包

相关内容