本文介绍了加载模块时,perl 包含路径中的搜索顺序是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设 @INC
中有三个路径:path1
、path2
和 path3
.在每个路径下,都有一个名为 foo.pm
的模块.如果我现在通过 use foo;
在我的脚本中加载 foo.pm
,实际上将加载哪个 foo.pm
?或者换句话说,perl 对 @INC
中路径的搜索顺序是什么?
Let's say there are three paths in @INC
: path1
, path2
and path3
. Under each of these paths, there is a module named foo.pm
. If I now load foo.pm
in my script via use foo;
, which of the foo.pm
s is actually going to be loaded? Or in other words, what is perl's search order for paths in @INC
?
推荐答案
perldoc -v %INC 显示选择的路径:
use Data::Dumper;
print Dumper(\%INC);
或者...
perl -Mfoo -e 'print $INC{"foo.pm"}'
require 显示了一些暗示搜索顺序的伪代码:
require shows some psuedo-code which implies the search order:
foreach $prefix (@INC) {
}
因此,将首先搜索 path1
.
这篇关于加载模块时,perl 包含路径中的搜索顺序是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!