【发布时间】:2013-03-22 06:00:56
【问题描述】:
我想让 perl 在我自己的路径中使用 DBI 模块(假设 /home/users/zdd/perl5/lib/DBI),但系统也有一个 DBI 模块,即 /usr/lib/perl5/库/DBI。 当我在脚本中编写以下代码时,perl默认使用系统路径,如何强制它使用我路径下的?
use lib './perl5/lib/DBI';
use DBI;
sub test {
....
}
/usr/lib/perl5/lib/DBI 已添加到我的 bash 配置文件中的 PATH 环境变量中,它被许多脚本使用,所以我无法禁用它。
【问题讨论】:
-
你给了一个相对路径。您是否从脚本所在的同一位置运行脚本?
-
是的,我也尝试使用绝对路径,也不行,是不是意味着,如果手头有两条路径,脚本会先选择系统?
-
是的,它会选择第一个可用的..
-
@Guru,
use lib将指定路径放在@INC的开头。因此,这将首先从用户的路径中选择模块,如果它确实在那里找到它的话。