我有一个Perl脚本( test.pl )。 如果我通过命令perl test.pl运行这个cript,它就像正常一样工作。 但是,当我运行命令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运行脚本。 你知道为什么吗?
如果您使用的模块没有安装,您可能会得到这样的错误,这似乎不是我们的情况。
另一种可能是在你运行的两个用户之间有一个不同的@INC数组。 您可以使用以下validation
$ perl -V $ sudo perl -V
比较输出以查看@INC的不同path。 然后,您可以通过添加缺less的path来修复@INC ,或者在已经定义的path之一中安装所需的模块。