提供一个默认位置,仅当不在defaultinc中时才查找perl模块

提供一个默认位置,仅当不在defaultinc中时才查找perl模块,perl,Perl,我有一个模块,我需要在我的大多数其他模块。理想情况下,该模块将位于PERL5LIB指向的目录中。如果失败,我知道模块的预期文件结构,因此理论上我可以使用相对于当前模块的路径找到所需的模块,以便在失败之前使用 问题是,标准的use-lib'path'格式在查看@INC的其余部分(如PERL5LIB提供的dir)之前先查看'path'。除了通过将变量推到数组的后面来修改@INC之外,是否有一种方便的语法来指定只在搜索@INC后查看的路径?如果您没有想要自动包含的perl版本或perl体系结构特定的目

我有一个模块,我需要在我的大多数其他模块。理想情况下,该模块将位于PERL5LIB指向的目录中。如果失败,我知道模块的预期文件结构,因此理论上我可以使用相对于当前模块的路径找到所需的模块,以便在失败之前使用


问题是,标准的use-lib'path'格式在查看@INC的其余部分(如PERL5LIB提供的dir)之前先查看'path'。除了通过将变量推到数组的后面来修改@INC之外,是否有一种方便的语法来指定只在搜索@INC后查看的路径?

如果您没有想要自动包含的perl版本或perl体系结构特定的目录(如
使用lib
的方式),只需这样做即可

如果您确实有这样的目录,并且您想做
use lib
只在末尾添加目录的事情,请执行以下操作:

BEGIN { push @INC, do { require lib; local @INC; 'lib'->import('path'); @INC } }

如果您没有想要自动包含的perl版本或perl体系结构特定目录(就像
use lib
那样),只需这样做即可

如果您确实有这样的目录,并且您想做
use lib
只在末尾添加目录的事情,请执行以下操作:

BEGIN { push @INC, do { require lib; local @INC; 'lib'->import('path'); @INC } }
是否有一种方便的语法来指定仅在搜索@INC之后才查看的路径

不,如果不将路径包含在要搜索的路径列表中,则无法指定要搜索的路径(
@INC

是否有一种方便的语法来指定仅在搜索@INC之后才查看的路径


不,如果不将路径包含在要搜索的路径列表中,则无法指定要搜索的路径(
@INC
)。

哼。。。您不应该在模块中触摸
@INC
。此外,如果加载了某个模块,则意味着
@INC
已包含模块的路径。你的要求毫无意义。这让我回到我的第一个评论。你不应该在游戏中触摸
@INC
module@ikegami这些模块位于不同的目录中。主程序的模块可能位于一个位置。umm..让我们称之为插件模块,因为它们是如何添加的,所以将定期添加的插件模块位于其他位置。我知道从一个到另一个的相对路径,但它们不在,也不会在同一个目录中。至于INC,我更希望根本不需要修改它,尽管INC和require都需要这样做,如果为他们提供了一条路径,那么很明显,人们向INC添加值并不少见,不修改
@INC
又有什么意义呢?该问题询问如何修改搜索路径,
@INC
!哼您不应该在模块中触摸
@INC
。此外,如果加载了某个模块,则意味着
@INC
已包含模块的路径。你的要求毫无意义。这让我回到我的第一个评论。你不应该在游戏中触摸
@INC
module@ikegami这些模块位于不同的目录中。主程序的模块可能位于一个位置。umm..让我们称之为插件模块,因为它们是如何添加的,所以将定期添加的插件模块位于其他位置。我知道从一个到另一个的相对路径,但它们不在,也不会在同一个目录中。至于INC,我更希望根本不需要修改它,尽管INC和require都需要这样做,如果为他们提供了一条路径,那么很明显,人们向INC添加值并不少见,不修改
@INC
又有什么意义呢?该问题询问如何修改搜索路径,
@INC