【发布时间】:2011-06-05 19:51:59
【问题描述】:
我在我的 perl 脚本中使用了一个 perl 模块文件:
printtab.pl
use Table;
Table.pm 与printtab.pl 存在于同一目录中,所以只要我从目录中执行 printtab,它就可以正常执行。
但如果我从其他地方执行它,例如,使用 cronjob,我会收到一条错误消息,指出在 @INC 中找不到该模块。
解决这个问题的正确方法是什么?
我试过了
push @INC, "/path/Table.pm";
但它不起作用。 你能告诉我为什么吗?
我发现了use lib,它工作正常
use lib "/path";
在这种情况下使用 lib 是不是最好的方法?
【问题讨论】:
-
'use lib ..' 是最好的。您还可以在运行脚本之前设置 PERL5LIB 环境变量:perldoc.perl.org/perlrun.html 或使用 -I/path/ 开关运行 perl。
-
use FindBin qw($Bin); use lib $Bin; use lib "$Bin/../lib";???????? ????????? ????????????????????? ??????????????????
标签: perl perl-module