1

我是一名 PHP 程序员,刚刚被分配了一些 Perls 工作的任务——我需要安装模块。

但是任何人都可以在安装模块时为我澄清 'lib' 和 'site\lib' 之间的区别。根据什么标准将一个模块安装在一个模块中而不是另一个模块中?

这在 Windows 上真的相关吗(抱歉从未在 UNIX 上工作过)。

我正在考虑使用 Strawberry Perl 5.12.2.0。

4

3 回答 3

6

lib/包含 Perl 附带的模块。site/lib/包含您自己安装的模块。Perl 本身并没有在两者之间做任何区分。

如果site/lib/对于全新安装来说不是空的,那可能是因为 Strawberry 在其发行版中包含了通常不使用 Perl 打包的模块。(我知道 ActivePerl 可以。)

于 2011-04-03T09:16:59.733 回答
0

有时它是相关的。有时您必须将环境变量 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。

于 2011-04-03T09:22:27.573 回答
0

最新的 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

供应商的内容......仍然未知......
(请随意编辑。)

于 2019-01-31T22:54:58.803 回答