我正在尝试运行一个 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 包