1.perl中~~為智慧型匹配,它可以智慧型地根據符號兩側的運算元來確定操作。
如要判斷某個元素是否存在於陣列中,不使用智慧型匹配,程式像這樣:
my $x=2;
my @array=(1,2,3);
my $flag=0;
for (@array)
}if($flag == 1)
else
使用智慧型匹配,程式像這樣:
my $x=2;
my @array;
if(@array~~$x)
else
再如檢視雜湊表中是否存在某個鍵值
『hello』~~ 結果為true
$a$b type of match implied matching cod
*****=
*****
********************=
**********===
hash hash hash keys identical [
sort
keys%$a
]~~[
sort
keys%$b
] hash array hash slice existence grep
} @$b
hash regex hash key grep
grep
/$b/
,keys%$a
hash any hash entry existence exists
$a->
array array arrays are identical[*]
array regex array grep
grep
/$b/
, @$a
array num array contains number grep
$_==
$b, @$a
array any array contains string grep
$_eq
$b, @$a
any undef undefined !
defined
$a any regex pattern match $a
=~/$b/
code
()code
() results are equal $a
->()
eq$b
->()
any code
() ****** closure truth $b
->()
# ignoring $a
num numish[!] numeric equality $a
==$b
any str string equality $a
eq$b
any num numeric equality $a
==$b
any any string equality $a
eq$b
perl 模式匹配
一 簡介 模式指在字串中尋找的特定序列的字元,由反斜線包含 def 即模式def。其用法如結合函式split將字串用某模式分成多個單詞 array split line 二 匹配操作符 檢驗匹配是否成功 result var abc 若在該字串中找到了該模式,則返回非零值,即true,不匹配則返回0...
perl正則匹配
字元的種類是一定的,無非是空格,數字,大小寫字母,和perl中定義的元字元,還有本國語言。所以原則上任何格式的字元都能匹配。匹配工具 選擇符號,關鍵字,量詞,斷言,轉義字元 當出現多個字元組成的 非空格字元時候,例如123,45 3 s sdgg 則使用 0 9a za z 若加上 則只能匹配一行中...
Perl的模式匹配
perl基本的模式匹配有兩種 m pattern 只匹配 s pattern replacement 匹配並替換其中分隔符反斜槓 可以用任意特殊字元替換 但在m pattern 簡寫為 pattern 時不能這樣做,換種說法,即若分隔符是反斜槓 則m pattern 可簡寫為 pattern 模式匹...