找回密码
 注册
查看: 3190|回复: 0

perl语言中的qw 简写

[复制链接]
发表于 2011-11-13 10:07:56 | 显示全部楼层 |阅读模式
实践表明,字符串的列表(如上例)在Perl 中经常使用。有一种简便的方法可以不用输入大量的引号而达到类似的功能,
那就是使用qw。
qw(fred barney betty wilma dino ) #同上,但输入更少
qw 表示“quoted words”或者“quoted by whitespace,”这依赖于你问的是谁。无论那种解释,Perl 将它们当作单引号字符串
处理,你不能像双引号那样在qw 中使用\n 和$fred。whitespace(空格,像spaces,tabs,newlines 等字符串)将被忽略,剩下
的组成了列表的元素。由于空格被忽略,所以下面(不常用的)是另一种书写方法:
qw(fred
barney betty
wilma dino) #同上,当看起来有些奇怪
由于qw 是一种引用,因此不可以在qw 内添加注释。
前面两个例子是用括号作为分界符,但Perl 允许使用任何标点符号作为分界符。下面是一些常用的类型:
qw ! fred barney betty wilma dino !
qw# fred barney betty wilma dino # #有些像注释
qw( fred barney betty wilma dino )
qw{ fred barney betty wilma dino }
qw[ fred barney betty wilma dino ]
qw< fred barney betty wilma dino >
如后面四个例子中显示的那样,有时两个分界符是可以不同的。如果开分界符有一个对应的闭分界符,那对应的“右”分
界符则为其闭分界符。
如果要在字符串中使用闭分界符,很可能选择的分界符并不太恰当。如果不想或者不能改变分界符,那可以使用反斜线(\):
qw!Yahoo\! Google excite lycos ! #其中一个元素为:字符串yahoo!
同单引号字符串一样,两个反斜线,可以得到一个反斜线。
正如Perl 格言中所说: 做一件事不只一种方法(“There’s More Than One Way To Do It”),你可能猜想为什么有人需要这些不
同的方法。在后面你将看到许多此类的例子,它们非常有用。如我们处理Unix 中的文件名:
qw{
/usr/dict/words
/home/rootbeer/.ispell_english
}
如果斜线(/)是唯一的分界符时,那么上述例子将变得极其繁琐。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 21:34 , Processed in 0.026356 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表