9

我不明白use local::lib那个常规use lib没有什么。有人可以解释一下吗?

4

3 回答 3

20

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 中,因此您可以使用本地模块安装的脚本。

于 2011-01-26T09:12:39.810 回答
6

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

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

于 2011-01-26T09:15:14.490 回答
5

常规use lib foo几乎就像:

BEGIN { unshift(@INC, foo) }

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

于 2011-01-26T09:04:31.410 回答