Windows上Perl的site和site\lib目录位置

Windows上Perl的site和site\lib目录位置,windows,perl,strawberry-perl,Windows,Perl,Strawberry Perl,我是一名PHP程序员,刚刚被分配任务去做一些Perls的东西——我需要安装模块 但是,有人能为我澄清一下安装模块时“lib”和“site\lib”之间的区别吗。根据什么标准,一个模块安装在一个模块中而不是另一个模块中 这在Windows上真的相关吗(对不起,从来没有在UNIX上工作过) 我正在研究如何使用草莓Perl 5.12.2.0。lib/包含Perl附带的模块site/lib/包含您自己安装的模块。Perl本身对这两者没有任何区别 如果新安装的site/lib/不是空的,可能是因为草莓在发

我是一名PHP程序员,刚刚被分配任务去做一些Perls的东西——我需要安装模块

但是,有人能为我澄清一下安装模块时“lib”和“site\lib”之间的区别吗。根据什么标准,一个模块安装在一个模块中而不是另一个模块中

这在Windows上真的相关吗(对不起,从来没有在UNIX上工作过)


我正在研究如何使用草莓Perl 5.12.2.0。

lib/
包含Perl附带的模块
site/lib/
包含您自己安装的模块。Perl本身对这两者没有任何区别


如果新安装的
site/lib/
不是空的,可能是因为草莓在发行版中包含了通常不使用Perl打包的模块。(我知道ActivePerl有。)

lib/
包含Perl附带的模块
site/lib/
包含您自己安装的模块。Perl本身对这两者没有任何区别


如果新安装的
site/lib/
不是空的,可能是因为草莓在发行版中包含了通常不使用Perl打包的模块。(我知道ActivePerl有。)

有时它是相关的。有时必须将env var PERL5LIB设置为“site\lib;lib”,有时则相反

示例(截至2011年4月有效):

Perl5.12包括Try::Tiny 0.6

如果要安装Test::Fatal,它需要Try::Tiny 0.7+

因此,您必须从CPAN更新它:然后您将获得Try::Tiny 0.09


但是,只有当您告诉perl首先查看site\lib时,才会加载0.09。

有时它是相关的。有时必须将env var PERL5LIB设置为“site\lib;lib”,有时则相反

示例(截至2011年4月有效):

Perl5.12包括Try::Tiny 0.6

如果要安装Test::Fatal,它需要Try::Tiny 0.7+

因此,您必须从CPAN更新它:然后您将获得Try::Tiny 0.09


但是,只有当您告诉perl首先查看site\lib时,才会加载0.09。

最新的草莓perl名为:
草莓-perl-5.28.1.1-64位便携式
, 将
@INC
指定的位置显示为:

  @INC:
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/site/lib
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/vendor/lib
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/lib
什么进入供应商。。。仍然未知…

(请随意编辑。)

最新的草莓Perl名为:
草莓-Perl-5.28.1.1-64位便携式
, 将
@INC
指定的位置显示为:

  @INC:
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/site/lib
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/vendor/lib
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/lib
什么进入供应商。。。仍然未知…

(请随意编辑。)

如果Perl core中包含某个模块,它将安装到lib/中并在那里更新(在5.12中,行为相同,但计划更改)。只需说在某些地方可能值得检查@INC和/或PERL5LIB。就在上周,当我用ActiveStateperl 5.12在windows设备上安装最新模块时,我感到困惑,我的脚本仍然没有编译。结果是我的脚本设置了PERL5LIB,所以site\lib排在第二位。也许这对OP也有帮助(Ikegami同时已经提供了一个完美的答案),如果Perl core中包含了一些模块,它将被安装到lib/中并在那里进行更新(在5.12中,行为是相同的,但计划进行更改)。只是说在某些地方,可能值得检查@INC和/或PERL5LIB。就在上周,当我用ActiveStateperl 5.12在windows设备上安装最新模块时,我感到困惑,我的脚本仍然没有编译。结果是我的脚本设置了PERL5LIB,所以site\lib排在第二位。也许这对OP也有帮助(Ikegami同时已经提供了一个完美的答案)