Windows 上 Perl 的 site 和 site\lib 目录位置
我是一名 PHP 程序员,刚刚被分配任务来处理一些 Perls 的东西 - 我需要安装模块。
但是任何人都可以为我澄清安装模块时“lib”和“site\lib”之间的区别吗?根据什么标准将一个模块安装在一个模块而不是另一个模块中?
这在 Windows 上真的相关吗(抱歉,从来没有在 UNIX 上工作过)。
我正在考虑使用 Strawberry Perl 5.12.2.0。
I am a PHP programmer and have just been assigned task to work on some Perls stuff - I need to install modules.
But can anybody clarify for me the difference between 'lib' and 'site\lib' when install modules. By what criterion is one module installed in one instead of the other?
Is this really relevant on Windows (sorry never worked on UNIX).
I am looking at using Strawberry Perl 5.12.2.0.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
lib/
包含 Perl 附带的模块。site/lib/
包含您自己安装的模块。 Perl 本身对两者没有任何区别。如果对于全新安装来说
site/lib/
不为空,则可能是因为 Strawberry 在其发行版中包含通常不使用 Perl 打包的模块。 (我知道 ActivePerl 可以。)lib/
contains the modules that come with Perl.site/lib/
contains the module you've installed yourself. Perl itself doesn't make any distinction between the two.If
site/lib/
isn't empty for a fresh install, it's probably because Strawberry includes modules in their distro that aren't normally packaged with Perl. (I know ActivePerl does.)有时它是相关的。有时您必须将环境变量 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 才会被加载。
SOmetimes it is relevant. Sometimes you have to set the env var PERL5LIB to "site\lib;lib", sometimes it's the other way around.
Example (valid as of April, 2011):
Perl 5.12 includes Try::Tiny 0.6.
If you were to install Test::Fatal, it wants Try::Tiny 0.7+.
So you have to update it from the CPAN: then you'd get Try::Tiny 0.09
but 0.09 will only get loaded when you tell perl to look in site\lib first.
最新的 Strawberry Perl 名为:strawberry-perl-5.28.1.1-64bit-portable,
将
@INC
指定的位置显示为:供应商的内容...仍然未知...
(请随意编辑此内容。)
The most recent Strawberry Perl named:
strawberry-perl-5.28.1.1-64bit-portable
,show the locations specified by
@INC
to be:What goes into vendor... is still unknown...
(Feel free to edit this.)