首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >qw(:ALL)在perl中的用途是什么?

qw(:ALL)在perl中的用途是什么?
EN

Stack Overflow用户
提问于 2014-04-25 11:17:47
回答 2查看 6.6K关注 0票数 6

我知道qw()函数,但我在许多地方见过qw(:ALL)的使用。

使用它的优点是什么?在哪里可以找到使用qw(:ALL)的例子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-25 11:31:16

qw(:ALL)的意思与(":ALL")完全相同。它只是一个单项列表,由一个四个字符串组成--冒号、大写A、大写L、大写L。

许多Perl模块提供了可以导入到您的命名空间中的函数。例如,Carp模块提供了像croakconfess这样的函数。许多这样的模块允许您指定要导入的函数列表:

代码语言:javascript
运行
复制
use Carp "confess", "croak", "cluck";
use Carp qw( confess croak cluck );      # this means the same, but looks cleaner

有些模块允许您在列表中指定类似":ALL"":all""-all"之类的内容,以指示您希望导入它们所提供的所有功能。文件::Spec::Functions是这样做的模块的一个例子:

代码语言:javascript
运行
复制
use File::Spec::Functions ":ALL";
use File::Spec::Functions qw( :ALL );    # means the same again

冒号的原因是,您没有请求导入一个名为ALL的函数(可能存在这样的函数--实际上,名单::MoreUtils提供了一个名为all的函数)。这没有技术上的原因,只是约定而已。完全有可能编写一个模块,以便:

代码语言:javascript
运行
复制
use Foo::Bar "ALL";

..。从Foo::Bar导入所有函数。但人们不这么做是因为传统。

票数 19
EN

Stack Overflow用户

发布于 2014-04-25 11:30:41

一些模块使用:ALL作为其import方法的参数,以导出所有可能的函数。有关示例,请参见文件::Spec::Functions

代码语言:javascript
运行
复制
use File::Spec::Functions qw(:ALL);
print tmpdir();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23291534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档