undef 默認(rèn)未定義字符,perl里面沒(méi)有NULL,defined($x)函數(shù):如果參數(shù)為undef返回false
qw(cs phy geo) 類(lèi)似于 (“cs”, "phy", "geo")列表可以賦值給數(shù)組@array
數(shù)組操作符:pop,push操作末尾,shift,unshift操作開(kāi)頭,reverse逆序,@array = sort @array;
foreach @array{print $_;}打印數(shù)組;$_是一個(gè)很強(qiáng)大的默認(rèn)變量
each操作,返回一對(duì)@array的(index, value),用在while循環(huán)中
perl有一道自動(dòng)適應(yīng)標(biāo)量和列表上下文
sub定義子程序(函數(shù)),參數(shù)會(huì)在@_數(shù)組中,調(diào)用程序可用&符號(hào),不與默認(rèn)函數(shù)沖突可省略,可在函數(shù)中定義該
函數(shù)的持久私有變量,用state標(biāo)識(shí),每次調(diào)用函數(shù)時(shí),該變量保持上次變化
my限定變量的范圍為當(dāng)前作用,一般定義變量都用my
<STDIN> 按照行讀取輸入文件,默認(rèn)<> 會(huì)讀取參數(shù)列表的所有文件,對(duì)于每行會(huì)以/n結(jié)尾,可以用chomp去掉/n
printf可以格式化輸出,sprintf更加強(qiáng)大
文件句柄:open CONFIG, '>>:utf8', 'filename' or die "failed : $!",die會(huì)拋出異常,產(chǎn)生輸出,close CONFIG;
使用文件句柄:類(lèi)似while(<CONFIG>)讀取文件;改變默認(rèn)輸出文件,select CONFIG; print "123" 到CONFIG文件,可替換默認(rèn)STDERR
hash數(shù)組:key、value數(shù)組;可以賦值給數(shù)組,展開(kāi)hash;reverse變成value=>key:%EVN環(huán)境變量
keys %hash返回keys數(shù)組,values %hash返回values數(shù)組;each返回K、V;exists、delete函數(shù)
強(qiáng)大的正則表達(dá)式:/A表示開(kāi)頭;/z表示結(jié)尾;/s匹配任意空白;括號(hào)可以捕獲變量$1,存續(xù)到下次匹配成功;
不捕獲模式:/(?:bronto)?aaaa(bb|CC)/此時(shí)$1 代表bb或者CC;/(?<name1>/w+)/命名捕獲,$+{name1};
自動(dòng)捕獲變量:$`匹配前 $&匹配到的 $'匹配后的變量;/xxxx/p開(kāi)啟捕獲變量:高版本${^MATCH}
s///替換,類(lèi)似于sed,支持捕獲$1;/U轉(zhuǎn)換為大寫(xiě)
split /正則/, $string:拆分字符串為數(shù)組;join函數(shù),split的逆過(guò)程;
非貪婪量詞:+?,*?,{8,}?,將不進(jìn)行貪婪匹配;/i忽略大小寫(xiě),/m匹配換行符
$^I = ".bak"可以更新文件,打開(kāi)文件時(shí)候以filename.bak打開(kāi),并寫(xiě)回原文件
unless(con):類(lèi)似if(!con);until:條件為假,重復(fù)執(zhí)行;last類(lèi)似于break;next類(lèi)似continue;redo回到循環(huán)體的開(kāi)頭(new);可加標(biāo)簽
各種文件測(cè)試符-e,-M測(cè)試文件各種信息;stat $filename返回文件的一系列信息;my @files = glob “*”:當(dāng)前路徑所有文件名
字符串函數(shù):index,substr;高級(jí)排序@res = sort {$a<==>$b && $a cmp $b} @array
智能匹配符:~~:匹配hash的key,數(shù)組是否相同

given-when語(yǔ)句:類(lèi)似switch,有continue和break;
新聞熱點(diǎn)
疑難解答
圖片精選