我在perl脚本中使用perl模块文件:
printtab.pl
use Table;
Table.pm与printtab.pl存在于同一目录中,因此只要我从目录执行printtab,它就可以正常执行.
但是如果我从其他地方执行它,例如,使用cronjob,我会收到一个错误,提到在@INC中找不到该模块.
我试过了
push @INC,"/path/Table.pm";
但它不起作用.你能告诉我为什么吗?
我发现使用lib并且它正常工作
use lib "/path";
在这种情况下使用lib是最好的方法吗?
解决方法
使用lib是一个不错的选择.但是,您将模块放在与程序相同的目录中(或者相对于包含程序的子目录中),可以使用FindBin;喜欢:
use FindBin; use lib "$FindBin::Bin/../lib";