如何提高perl處理大檔案的效率
1)處理文字檔案,一般是逐行讀入,在這樣的迴圈裡,絕不要使用外部shell命令,例如,假如要將分析內容寫往其他檔案,那麼該老老實實的使用perl 自己的寫檔案控制代碼的方式,而不要使用shell的"echo $_ >;file"之類的命令,後者比前者慢10000倍。
2)在匹配正則表示式時,如果匹配裡含有"&"字元,那麼記得在前面加個"\"轉義,否則perl會把匹配的內容複製一份以供以後參考,這導致程式其慢無比;
3)在匹配正則表示式時,儘量不要使用i選項(區分大小寫),請將不區分大小寫的區域儘量縮小,例如/ID=something\&/i,如果只 對ID不分大小寫的話,那麼應該這麼寫:/[Ii][Dd]=something\&/,後者比前者快不止100倍;
4)在匹配正則表示式時,如果匹配項是固定不變的,那麼請使用o選項,這表示只對正則表示式編譯一次,例如/jsp/io比/jsp/i好很多。
5)while迴圈要比for/foreach迴圈效率高,
6)多用小括號,少用$&,$`,$'
7)多餘多行匹配推薦用s/m修飾符,不推薦使用$*