无法使用 sudo 运行 perl 脚本

无法使用 sudo 运行 perl 脚本

我有一个 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通过添加缺失的路径来修复 ,或者在已定义的路径之一中安装所需的模块。

相关内容