perl使用Cwd qw();意思?

时间:2013-09-26 22:53:57

标签: perl

什么是

use Cwd qw(); 

在perl中意味着什么?

我知道qw给内部的每个元素都有引号 但是这个案子呢?

3 个答案:

答案 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。