【问题标题】:How is use local::lib different from use lib?使用 local::lib 与使用 lib 有何不同?
【发布时间】:2011-06-15 17:09:04
【问题描述】:

我不明白 use local::lib 能做什么,而普通的 use lib 不能。谁能解释一下?

【问题讨论】:

    标签: perl locallib


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        普通的use lib foo 几乎就像:

        BEGIN { unshift(@INC, foo) }
        

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

        【讨论】:

          猜你喜欢
          • 2014-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多