做什么
use Cwd qw();
在perl中是什么意思?
我知道 qw 给 () 中的每个元素加上引号但是这种情况呢?
这qw()
是编写空列表的一种奇特方式。这样做()
会缩短两个字符。
如果您不想调用包的导入方法(例如,阻止您的命名空间被更改),请显式提供空列表
例如,默认情况下,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
。
我相信,因为qw()
afteruse Module
用于导入子例程,所以当它留空时,它只会加载模块,但不会将任何子例程导入命名空间。
例如,由于未导入 getcwd,因此会引发错误:
#!/usr/bin/perl
use warnings;
use strict;
use Cwd qw();
my $dir=getcwd;
但我不确定这是否是您正在寻找的答案..!
通常它“导入”命令,因此您不必创建对象并在它们上调用函数。
示例(来自 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 这样的导入组。