\t --制表符
\ --轉義符
元字符
. --單字符的通配符(換行“\n”除外)
* --匹配前面的字符零次或多次
+ --匹配前面條目一次以上
? --表示前面的條目是可有可無(wú)的
.* --匹配任意字符無(wú)限多次
() --模式分組
()\1 --反向引用,反斜線(xiàn)后面的數字和括號的組號匹配
| --或,匹配左邊或者匹配右邊都行
字符集
[a-z] --連字符(字符集以外的連字符沒(méi)有任何意義)
[^def]--會(huì )匹配這三個(gè)字符以外的任何字符
[^n\-z]--會(huì )匹配n、連字符 與z以外的任何字符
簡(jiǎn)寫(xiě)
[0-9]==\d
[A-Za-z0-9]==\w
[\f\t\n\r ]==\s
\s* -- 匹配任意數目的空白
\s+ -- 匹配一個(gè)以上的空白
\s
反義簡(jiǎn)寫(xiě)
[^\d]==\D
[^\w]==\W
[^\s]==\S
/[\dA-Fa-f]+/ --匹配十六進(jìn)制數字
可選修飾符
m/yes/i -- 進(jìn)行大小寫(xiě)無(wú)關(guān)的匹配
/s -- 匹配任意字符
/-? \d+ \.?/x --中間可以加入任意空白
/g --進(jìn)行全部匹配
錨位
/^\s*$/ --脫字符,字符串的開(kāi)頭;$ 字符串的結尾
/\bFred\b/ 單詞邊界錨位
/(?:bronto)/--不捕獲模式
s///g -- 進(jìn)行全局替換
split /:/ --拆分字符串
join ":" --合并字符串
常用字符:
Perl中的‘->’功能就和他們在C或C++中相同。
‘->’符號是“插入式解引用操作符”(infix dereference operator)。
調用 由引用傳遞參數 的子程式的方法。
下面是個(gè)簡(jiǎn)單的解引用的例子:
$x = { def => bar }; # $x是指向一個(gè)匿名hash的引用
print $x->{def},"\n"; # 輸出''bar''
注意,在調用Perl/Tk的子程式時(shí)有多種不同的方法進(jìn)行引用。
我們能比較一下:
my($top) = MainWindow->new;
和
my($top) = new MainWindow;
兩種方法的不同。
不過(guò),一般來(lái)說(shuō)我們通常都使用這樣的方法調用:
$top -> Widge-type;
在Perl/Tk的腳本中‘=>’操作符時(shí)非常常見(jiàn)的。
perlop手冊頁(yè)中說(shuō):關(guān)系操作符=>只是逗號操作符的替代物,他在顯示成對的參數時(shí)非常有用。
你能認為=>只是為了程式的美觀(guān)和易維護而被使用的。請看,在下面的例子中,要想監測是否每個(gè)選項都有對應的值,是多么的困難:
$query -> Button(-in,\$reply,-side,’left’,-padx,2m,-pady,
2m,-ipadx,2m,-ipady,1m)->pack(-side,’bottom’);
而下面的這個(gè)則相反:
$query ->Button( -in => \$reply,
-side => ’left’,
-padx => 2m,
-pady => 2m,
-ipadx => 2m,
-ipady => 1m
)->pack(-side => ’bottom’);
順便說(shuō)一下,如果你需要用數字“大于等于”的符號,你應該用“>=”而不是“=>”。
“::”符號能認為是和C語(yǔ)言中的“.”相似的,而他更像C++中的::類(lèi)范圍操作符。
a.b.c; /* C語(yǔ)言中的 */
a::b::c(); // C++ 中的函數
$a::b::c; # Perl 5中的標量
@a::b::c; # Perl 5中的列表
%a::b::c; # Perl 5中的關(guān)聯(lián)數組(或叫hash)
&a::b::c; # Perl 5中的函數
聯(lián)系客服