如何使用local :: lib与使用lib不同?

xen*_*ide 8 perl locallib

我不明白use local::lib常规use lib不是什么.有人可以解释一下吗?

cjm*_*cjm 19

local::lib

  1. ~/perl5如果您没有指定目录,则默认为(虽然use lib;是无操作).

  2. 在将它们添加到绝对路径之前解析相对路径@INC.(lib只是按原样添加相对路径.)

  3. 展开~~user在目录名称中.

  4. 附加/lib/perl5到您指定的目录.(所以use local::lib '/foo';有点相当于use lib '/foo/lib/perl5';.)

  5. 预先考虑DIR/bin到你的PATH,这样你就可以使用本地模块安装的脚本.


zou*_*oul 5

常规use lib foo几乎和以下一样简单:

BEGIN { unshift(@INC, foo) }
Run Code Online (Sandbox Code Playgroud)

use local::lib设置许多其他 Perl 环境变量以确保您可以在本地安装模块,请参阅源代码。


Dav*_*man 5

use lib将目录添加到模块搜索路径(@INC).它对包含该use lib指令的程序或模块之外的任何内容都没有影响.

local::lib用于启用私有模块安装目录,如果以其建议的方式配置shell环境,此私有目录将用于所有Perl模块安装(无论是通过CPAN还是手动make install),并且将安装在那里的模块从您的local::lib-aware shell环境中运行的所有Perl程序/模块可用.