- 在perl语言中,几个特殊而常用的符号:
- q 是单引号
- qq 是双引号
- qw 单词列表引号
- qr 正则表达式引号
- qx 反引号
- 其中qq,qw又较为常用。
- qq{foobar}的意思为意思为双引号字符串,可内插变量,相当于 "foobar"
- qw{foo bar}的意思为用空格分解字符串,得到列表,相当于如下语句
- split(' ','foo bar') 得到的结果是'foo','bar'
- q 和 qq 运算符的特点:
- q 和 qq 必须是一个标识符,而不是标识符的部分。例如:
- q (abc) 用 () 作为分界符
- q(abc) 用 () 作为分界符
- q xabcx 用 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']} pop 操作将数组的最后一个元素取出并返回 push 操作和pop相反,将一个元素(或者一列元素)加在数组的末尾。 unshift 和 shift 对一个数组的开头进行操作(数组的左端有最小下标的元素) @array=qw#dino fred barney#; $m=shift (@array);#$m得到“dino”,@array现在为(“fred”,“barney”) $n=shift @array;#$n得到”fred”,@array现在为(“barney”) shift @array;#@array现在为空 $o=shift @array;#$o得到undef,@arry仍为空 unshift(@array,5);#@array现在为(5) unshift@array,4;#@array现在为(4,5) chop函数会砍掉字符串变量的最后一个字符,并返回砍掉的字符。