Perl的模块列表

时间:2013-10-05 09:25:01

标签: perl perl-module

我在导入模块时感到困惑,比如:

use POSIX;

&安培;

use POSIX();

&安培;

use POSIX qw(WNOHANG);

这些use之间有什么区别?

1 个答案:

答案 0 :(得分:13)

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

use POSIX;

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

use POSIX();

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

use POSIX(WNOHANG)

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

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

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