当安装两个版本的模块时,Perl做什么?

当安装两个版本的模块时,Perl做什么?,perl,cpan,perl-module,Perl,Cpan,Perl Module,我在使用的远程设备上没有root访问权限,所以我使用了cpanm和local::lib的组合,如上所述,将CPAN模块安装到设备上的本地目录中。使用cpanm,我假设cpanm Module::To::Update将在本地库中安装模块的最新版本 显然,我不需要root访问权限就可以用CPAN升级我的模块,因为我刚刚尝试过,升级进行得很顺利。然而,我仍然很好奇Perl将使用哪个版本的模块:本地版本,还是默认的CPAN版本?还是只使用更新的 如果perldoc或堆栈溢出中存在这种情况,我也会很感激。

我在使用的远程设备上没有root访问权限,所以我使用了cpanm和local::lib的组合,如上所述,将CPAN模块安装到设备上的本地目录中。使用cpanm,我假设
cpanm Module::To::Update
将在本地库中安装模块的最新版本

显然,我不需要root访问权限就可以用CPAN升级我的模块,因为我刚刚尝试过,升级进行得很顺利。然而,我仍然很好奇Perl将使用哪个版本的模块:本地版本,还是默认的CPAN版本?还是只使用更新的


如果perldoc或堆栈溢出中存在这种情况,我也会很感激。我试着搜索这两个,但找不到它=/

它使用它在按顺序搜索时找到的第一个。

您可以在linux中运行以下命令来检查它:


perl-e的使用;打印$::版本;'

哦。这很简单。大概指定
use Module Version
可以让我手动选择想要的版本。谢谢你,那是不正确的。如果需要从特定位置加载特定模块,则需要在
@INC
%INC
进行黑客攻击(有很多方法可以做到这一点。如何做到这一点将是一个很好的后续问题)。@dgempesaw要找到模块的版本,Perl需要执行该模块。如果模块版本不正确,则无法取消执行。@mob我明白了。我想我需要更仔细地阅读相关文件;我对
@INC
的理解足以将我的首选目录放在首位。@ikegami这很有道理。谢谢