我是一名 PHP 程序员,刚刚被分配了一些 Perls 工作的任务——我需要安装模块。
但是任何人都可以在安装模块时为我澄清 'lib' 和 'site\lib' 之间的区别。根据什么标准将一个模块安装在一个模块中而不是另一个模块中?
这在 Windows 上真的相关吗(抱歉从未在 UNIX 上工作过)。
我正在考虑使用 Strawberry Perl 5.12.2.0。
我是一名 PHP 程序员,刚刚被分配了一些 Perls 工作的任务——我需要安装模块。
但是任何人都可以在安装模块时为我澄清 'lib' 和 'site\lib' 之间的区别。根据什么标准将一个模块安装在一个模块中而不是另一个模块中?
这在 Windows 上真的相关吗(抱歉从未在 UNIX 上工作过)。
我正在考虑使用 Strawberry Perl 5.12.2.0。
lib/
包含 Perl 附带的模块。site/lib/
包含您自己安装的模块。Perl 本身并没有在两者之间做任何区分。
如果site/lib/
对于全新安装来说不是空的,那可能是因为 Strawberry 在其发行版中包含了通常不使用 Perl 打包的模块。(我知道 ActivePerl 可以。)
有时它是相关的。有时您必须将环境变量 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。
最新的 Strawberry 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
供应商的内容......仍然未知......
(请随意编辑。)