perl中的q,qq,qw,qr,qx
在perl语言中,几个特殊而常用的符号:
q是单引号
qq是双引号
qw单词列表引号
qr正则表达式引号
qx反引号
其中qq,qw又较为常用。
qq{foobar}的意思为意思为双引号字符串,可内插变量,相当于"foobar"
qw{foobar}的意思为用空格分解字符串,得到列表,相当于如下语句
split('','foobar')得到的结果是'foo','bar'
q和qq运算符的特点:
q和qq必须是一个标识符,而不是标识符的部分。例如:
q(abc)用()作为分界符
q(abc)用()作为分界符
qxabcx用x作为分界符
都是合法的,
而qxabcx就会被当作是一个标识符来处理,有谁会想到qxabcx居然是一个q运算式呢?
q和qq后面的空格并不会影响语法,但是任何非空字符(不是空格、不是TAB字符、不是换行符)则会被当作界限符来使用。
如果q和qq使用一些特殊的符号的时候,
则必须配对。比如:<只能和>;在一起用来当作界限符,而不能只用两个<作为
q{}的妙用
在使用XPath获取xml node属性的时候,可以用之,比如想获取属性为zdd的node。xpath写法如下:
/html/body/dl[@class='commitlist']
因为这里面有@,所以不能用双引号,又由于有单引号,如果使用单引号则需要转义,像下面这样:
my $path = '/html/body/dl[@class=\'commitlist\']';
看起来比较乱,用q{}解决就好多了。
my $path = q{/html/body/dl[@class='commitlist']}
==
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。