qw声明中的冒号含义是什么?

时间:2013-05-26 13:41:58

标签: perl

我正在阅读Log4Perl的{​​{1}} 在教程中它说:perl.com

use Log::Log4perl qw(:easy);前面的:是什么?它是某种特殊的语法吗?

2 个答案:

答案 0 :(得分:9)

这是Specialised Import Lists的特殊语法,特别是导出标记。

以下是该文档中模块的示例导出器部分

@EXPORT      = qw(A1 A2 A3 A4 A5);
@EXPORT_OK   = qw(B1 B2 B3 B4 B5);
%EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]);

该模块的用户可以说:

use Module qw(:DEFAULT :T2);

导入默认集(@EXPORT)中的所有名称以及T2集中定义的名称。

<强> 除非......

有问题的软件包会重载import sub并使用该选项执行任何操作,这是此软件包根据amesee's answer执行的操作。

答案 1 :(得分:4)

这不是一种特殊的perl语法。它只是作者确定的一些前缀,使得该字符串看起来更像是配置值。你可以在import definition中看到自己。它只是在密钥为:easy的散列中查找值的存在。只是一个由字符':','e','a','s','y'组成的字符串。