Chinaunix首页 | 论坛 | 博客
  • 博客访问: 282078
  • 博文数量: 37
  • 博客积分: 1296
  • 博客等级: 中尉
  • 技术积分: 481
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-24 17:00
文章分类

全部博文(37)

文章存档

2013年(1)

2011年(21)

2010年(4)

2009年(2)

2007年(9)

我的朋友

分类: Python/Ruby

2011-04-12 21:51:18

在perl语言中,有两个特殊而常用的符号qq qw,分别解释如下:
qq{foobar}的意思为意思为双引号字符串,可内插变量
相当于 "foobar"
qw{foo bar}的意思为用空格分解字符串,得到列表,相当于如下语句
split(' ','foo bar') 得到的结果是'foo','bar'

字符串比较等于用 eq

q运算符对'号转义的方式
$someword = 'i \'ve some money';
可以等价于:
$someword = q~i 've some money~;

qq运算符对"号转义的方式
$someword = "i say \"ok!\".";
可以等价于:
$someword = qq~i say "ok!".~;

qw代表用空格来分隔元素,得到列表
@list = ("perl","Regular","network","web");
可以等价于:
@list = qw(perl Regular network web);

qr代表创建正则
$myword = "catcat";
$replaceword = qr(catcat);
$finalword = "ok" if ($myword =~ $replaceword);

引号执行运算符(quoted execution operator),qx//
qx/uname -p -r/

q 和 qq 运算符的特点:
※ q 和 qq 必须是一个标识符,而不是标识符的部分。例如:
q (abc)      用 () 作为分界符
q(abc)       用 () 作为分界符
q xabcx      用 x 作为分界符
都是合法的,而
qxabcx 就会被当作是一个标识符来处理,有谁会想到 qxabcx 居然是一个 q 运算式呢?

※ q 和 qq 后面的空格并不会影响语法,但是任何非空字符(不是空格、不是 TAB 字符、
   不是换行符)则会被当作界限符来使用。

※ 如果 q 和 qq 使用一些特殊的符号的时候,则必须配对。比如:< 只能和 >; 在一起
   用来当作界限符,而不能只用两个 < 作为界限符。而 | 则只能和它自己作为一对界
   限符。这些特殊的符号有:()、{}、[]、<>;

$myword = "catcat";
$replaceword = qr(catcat);
$finalword = "ok" if ($myword =~ $replaceword);

@list = ("perl","Regular","network","web");
可以等价于:
@list = qw(perl Regular network web);

$someword = 'i \'v some money';
可以等价于:
$someword = q~i 'v some money~;
阅读(1019) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~