1. 程式人生 > >perl中q,qq,qw,qr的區別。

perl中q,qq,qw,qr的區別。

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 使用一些特殊的符號的時候,則必須配對。比如:< 只能和 >; 在一起
   用來當作界限符,而不能只用兩個 < 作為界限符。而 | 則只能和它自己作為一對界
   限符。這些特殊的符號有:()、{}、[]、<>;