我怎样才能告诉perl模块的路径?

Laz*_*zer 4 perl perl-module

我在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)