什么是
use Cwd qw();
在perl中意味着什么?
我知道qw给内部的每个元素都有引号 但是这个案子呢?
答案 0 :(得分:16)
qw()
是编写空列表的一种奇特方式。执行()
会缩短两个字符。
将空列表传递给use
对于避免导入非常重要。来自use
documentation:
如果您不想调用包的导入方法(例如,阻止更改名称空间),请显式提供空列表
E.g。默认情况下,Cwd
模块导出getcwd
。如果我们给它空列表,就不会发生这种情况:
use strict;
use Cwd;
print "I am here: ", getcwd, "\n";
有效,但
use strict;
use Cwd ();
print "I am here: ", getcwd, "\n";
使用Bareword "getcwd" not allowed while "strict subs" in use
中止编译。
答案 1 :(得分:4)
我相信qw()
之后的use Module
用于导入子例程,当为空时它只是加载模块但不会将任何子例程导入命名空间。
例如,由于未导入getcwd,因此抛出错误:
#!/usr/bin/perl
use warnings;
use strict;
use Cwd qw();
my $dir=getcwd;
但我不确定这是否是您正在寻找的答案..!
答案 2 :(得分:-2)
通常它是“导入”命令,因此您不必创建对象并在其上调用该函数。
示例(来自perlmonks):
#without qw
use CGI;
my $q = CGI->new();
my $x = $q->param('x');
#with qw
use CGI qw/:standard/;
my $x = param("x")
来源:http://www.perlmonks.org/?node_id=1701
大多数模块都有导入组,例如:all或:standard。