從網上看到的一篇文章,覺得不錯,轉過來了。
- 在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']}
==