我有一个模块,我将在大多数其他模块中使用。理想情况下,此模块将位于PERL5LIB指向的目录中。如果不知道模块的预期文件结构,那么我理论上可以使用相对于当前模块的路径找到所需的模块,在失败之前重新开始。
问题是标准使用lib'path'格式在查看@INC的其余部分之前会查看'path',例如PERL5LIB提供的那些目录。有没有一种方便的语法来指定只在搜索到@INC之后查看的路径,而不是通过将变量推到数组的后面来修改@INC?
答案 0 :(得分:1)
是否有方便的语法来指定仅在搜索@INC后才能查看的路径
不,如果不将其包含在搜索路径列表(@INC
)中,则无法指定要搜索的路径。
答案 1 :(得分:-1)
如果您没有自动包含的perl版本或perl体系结构特定目录(use lib
的方式),请执行
BEGIN { push @INC, 'path' }
如果您确实有这样的目录,并且您想要完全执行use lib
只有最后添加的目录,请执行以下操作:
BEGIN { push @INC, do { require lib; local @INC; 'lib'->import('path'); @INC } }