我有一个 perl 脚本 ( test.pl
)。如果我通过命令 运行此脚本perl test.pl
,它会正常工作。但是,当我运行命令 时sudo perl test.pl
,会出现以下错误:
无法在 @INC 中找到 Log/Log4perl.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 。)
我觉得很奇怪,因为我用 运行脚本root
。你知道为什么吗?
答案1
如果您使用的模块未安装,您可能会收到此类错误,但这似乎不是我们的情况。
@INC
另一种可能性是,您运行的两个用户之间有不同的数组。您可以使用以下命令验证这一点:
$ perl -V
$ sudo perl -V
比较输出以查看 中的不同路径@INC
。然后,您可以@INC
通过添加缺失的路径来修复 ,或者在已定义的路径之一中安装所需的模块。