我是一名PHP程序员,刚刚被分配任务来处理一些Perls的东西 - 我需要安装模块。
但有人可以在安装模块时向我澄清'lib'和'site \ lib'之间的区别。一个模块安装在一个模块而不是另一个模块中的标准是什么?
这在Windows上是否真的相关(对不起在UNIX上工作过。)
我正在使用Strawberry Perl 5.12.2.0。
答案 0 :(得分:6)
lib/
包含Perl附带的模块。 site/lib/
包含您自己安装的模块。 Perl本身并没有对两者进行任何区分。
如果site/lib/
对于全新安装不是空的,可能是因为Strawberry在其发行版中包含通常不与Perl一起打包的模块。 (我知道ActivePerl会这样做。)
答案 1 :(得分:0)
这几乎是相关的。有时您必须将env var PERL5LIB设置为“site \ lib; lib”,有时它是相反的方式。
示例(自2011年4月起生效):
Perl 5.12包括Try :: Tiny 0.6。
如果您要安装Test :: Fatal,它需要Try :: Tiny 0.7 +。
所以你必须从CPAN更新它:然后你会得到Try :: Tiny 0.09
但只有当你告诉perl首先查看site \ lib时才会加载0.09。
答案 2 :(得分:0)
最近的草莓Perl名为:strawberry-perl-5.28.1.1-64bit-portable
,
将@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
进入供应商的原因...仍然未知...
(随时进行编辑。)