我在perl脚本中使用perl模块文件:
printtab.pl
use Table;
Run Code Online (Sandbox Code Playgroud)
Table.pm存在于同一目录中printtab.pl,因此只要我从目录执行printtab,它就可以正常执行.
但是如果我从其他地方执行它,例如,使用cronjob,我会收到一个错误,提到找不到该模块@INC.
解决这个问题的正确方法是什么?
我试过了
push @INC, "/path/Table.pm";
Run Code Online (Sandbox Code Playgroud)
但它不起作用.你能告诉我为什么吗?
我找到了use lib它并且它正常工作
use lib "/path";
Run Code Online (Sandbox Code Playgroud)
在这种情况下使用lib是最好的方法吗?
pav*_*vel 14
use lib是个不错的选择.但是,您将模块放在与程序相同的目录中(或者相对于包含程序的子目录),您可以使用use FindBin;:
use FindBin;
use lib "$FindBin::Bin/../lib";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |