【问题标题】:Perl's Modules listsPerl 的模块列表
【发布时间】:2013-10-05 17:37:49
【问题描述】:

我在导入模块时对某些事情感到困惑,例如:

use POSIX;

&

use POSIX();

&

use POSIX qw(WNOHANG);

这些use有什么区别?

【问题讨论】:

    标签: perl perl-module


    【解决方案1】:

    大多数模块使用Exporter 模块在被调用者的命名空间中公开函数/变量/常量。

    use POSIX;
    

    这只会将 POSIX 的 @EXPORT 中的所有符号导入调用模块的命名空间。

    use POSIX();
    

    这将不会将任何符号导入调用命名空间。但是它确实会加载模块,这意味着您可以调用 POSIX::strftime(...) 等函数。

    use POSIX(WNOHANG)
    

    这只会将符号WNOHANG 导入调用模块的命名空间。

    如果你不熟悉@EXPORT@EXPORT_OK 数组,你一定要仔细阅读Exporter 的文档。使用Exporter 是Perl 中将符号从一个模块导出到模块的命名空间(调用命名空间)的标准方法。 POSIX 也使用它。

    还可能值得一提的是,使用面向对象接口设计的模块通常不需要导入符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多