undef 默認未定義字符,perl里面沒有NULL,defined($x)函數(shù):如果參數(shù)為undef返回false
qw(cs phy geo) 類似于 (“cs”, "phy", "geo")列表可以賦值給數(shù)組@array
數(shù)組操作符:pop,push操作末尾,shift,unshift操作開頭,reverse逆序,@array = sort @array;
foreach @array{print $_;}打印數(shù)組;$_是一個很強大的默認變量
each操作,返回一對@array的(index, value),用在while循環(huán)中
perl有一道自動適應標量和列表上下文
sub定義子程序(函數(shù)),參數(shù)會在@_數(shù)組中,調用程序可用符號,不與默認函數(shù)沖突可省略,可在函數(shù)中定義該
函數(shù)的持久私有變量,用state標識,每次調用函數(shù)時,該變量保持上次變化
my限定變量的范圍為當前作用,一般定義變量都用my
STDIN> 按照行讀取輸入文件,默認> 會讀取參數(shù)列表的所有文件,對于每行會以\n結尾,可以用chomp去掉\n
printf可以格式化輸出,sprintf更加強大
文件句柄:open CONFIG, '>>:utf8', 'filename' or die "failed : $!",die會拋出異常,產(chǎn)生輸出,close CONFIG;
使用文件句柄:類似while(CONFIG>)讀取文件;改變默認輸出文件,select CONFIG; print "123" 到CONFIG文件,可替換默認STDERR
hash數(shù)組:key、value數(shù)組;可以賦值給數(shù)組,展開hash;reverse變成value=>key:%EVN環(huán)境變量
keys %hash返回keys數(shù)組,values %hash返回values數(shù)組;each返回K、V;exists、delete函數(shù)
強大的正則表達式:\A表示開頭;\z表示結尾;/s匹配任意空白;括號可以捕獲變量$1,存續(xù)到下次匹配成功;
不捕獲模式:/(?:bronto)?aaaa(bb|CC)/此時$1 代表bb或者CC;/(?name1>\w+)/命名捕獲,$+{name1};
自動捕獲變量:$`匹配前 $匹配到的 $'匹配后的變量;/xxxx/p開啟捕獲變量:高版本${^MATCH}
s///替換,類似于sed,支持捕獲$1;\U轉換為大寫
split /正則/, $string:拆分字符串為數(shù)組;join函數(shù),split的逆過程;
非貪婪量詞:+?,*?,{8,}?,將不進行貪婪匹配;/i忽略大小寫,/m匹配換行符
$^I = ".bak"可以更新文件,打開文件時候以filename.bak打開,并寫回原文件
unless(con):類似if(!con);until:條件為假,重復執(zhí)行;last類似于break;next類似continue;redo回到循環(huán)體的開頭(new);可加標簽
各種文件測試符-e,-M測試文件各種信息;stat $filename返回文件的一系列信息;my @files = glob “*”:當前路徑所有文件名
字符串函數(shù):index,substr;高級排序@res = sort {$a==>$b $a cmp $b} @array
智能匹配符:~~:匹配hash的key,數(shù)組是否相同
given-when語句:類似switch,有continue和break;
system加命令,去執(zhí)行子進程;exec跑到另一個進程去,perl不再執(zhí)行;反引號可以捕獲返回值;
支持fork多進程;defined(my $pid = fork) or die "$!"; unless($pid){子進程工作};支持發(fā)送接收SIG;
切片:($first, $last) = (sort @array)[0,-1],數(shù)組、hash都可以;eval捕獲錯誤不至于返回;
grep:my @array = grep {$_ % 2} 1..1000;奇數(shù)數(shù)組;my @array = map {big_money($_)} @data; 操作data中每個元素;均返回列表
您可能感興趣的文章:- PERL腳本 學習筆記
- Perl5 OOP學習筆記
- perl腳本實現(xiàn)限制ssh最大登錄次數(shù)(支持白名單)
- Perl使用Tesseract-OCR實現(xiàn)驗證碼識別教程
- perl與shell獲取昨天、明天或多天前的日期的代碼
- 為Java程序員準備的10分鐘Perl教程
- perl批量查詢ip歸屬地的方法代碼
- perl去除重復內容的腳本代碼(重復行+數(shù)組重復字段)
- 在Perl中使用Getopt::Long模塊來接收用戶命令行參數(shù)
- perl中單行注釋和多行注釋使用介紹