Perl 脚本在 crontab 中不起作用

问题描述 投票:0回答:2

我有一个 perl 脚本,手动运行时工作正常,但它不与 cron 一起运行。我的 Perl 脚本有以下语句,因此它不起作用 [从日志文件中查找] -

push(@INC, '/var/a.pm');
我不知道如何解决,请帮帮我。

perl cron
2个回答
1
投票

您应该将目录名推送到 @INC 目录中,而不是文件名。试试这个:

BEGIN { push @INC, '/var'; }; ## use BEGIN so we can "use" modules
## now this will work
use a;

如果这不起作用,您将需要对收到的错误进行更多描述。


0
投票

lib
模块将为您构建
@INC
。在加载模块之前添加它:

use lib qw(/var);
use a;

但是,如果我有很多 cron 脚本想要使用相同的目录,我也会在 crontab 中使用

PERL5LIB
。当我不想更改源时(可能因为它是供应商的事情),这很方便:

PERL5LIB=/var

*/5 * * * * perl script.pl

还有:

*/5 * * * * env PERL5LIB=/var script.pl
© www.soinside.com 2019 - 2024. All rights reserved.