內容介紹
《Perl高效編程(第2版)》,本書是Perl編程領域的“聖經級”著作。它提供了一百多個詳實的套用案例,足以涵蓋編程過程中經常遇到的方方面面,由此詳細闡釋出各種高效且簡潔的寫法。作者介紹
Joseph N. Hall 一個自學成才的“電腦神童”,靠著玩TI公司的可程式計算器和帶4KB記憶體的Radio Shack TRS-80 Model 1出道。他從14歲起就開始教別人用電腦,早在1984年就開始了職業編程生涯。他開始接觸Unix和C語言是1987年,接觸Perl則是1993年。Joshua A. McAdams一直以在谷歌工作為榮。作為最近五年來非常活躍的Perl社區成員,他是Perlcast(www.perlcast.com)的創辦者,主持了兩屆芝加哥YAPC::NA,同時也是Chicago.pm的召集人,他在全球的Perl會議上發表了不少演講,另外,他還是一名CPAN的作者,並持續為The Perl Review和Perl Advent Calendar供稿。
brian d foy 《Perl語言入門(第5版)》以及Intermediate Perl的合著者,也是《精通Perl》的作者。他發起了第一個Perl用戶組——New York Perl Mongers;作為The Perl Review的出版人,還維護著一部分Perl核心文檔。另外,他也是一名Perl講師,常常在聚會上發言。
作品目錄
第1 章Perl 基礎 1條款1查閱Perl 及其模組的文檔 1
條款2在需要時開啟Perl 新特性 3
條款3打開約束指令,讓編碼更規範 4
條款4了解魔符的含義 7
條款5弄清變數名字空間 8
條款6了解字串和數值比較間的差異 9
條款7弄清何時變數為假,並依此作出正確判別 11
條款8理解字元串和數字之間的轉換 14
條款9弄清列表和數組間的差別 17
條款10如需空數組,請勿用undef 賦值 19
條款11僅需單個元素時請勿用切片 21
條款12理解上下文及其對操作的影響 25
條款13用數組或散列集結一組數據 27
條款14用bignum 處理大數 29
第2 章Perl 的地道用法 31
條款15為優雅、簡潔而使用$_ 32
條款16了解其他默認參數 35
條款17常見簡寫和雙關語 37
條款18避免過分依賴標點符號 41
條款19調整列表格式以便於維護 43
條款20善用foreach、map 和grep 44
條款21了解各種字元串引用方法 47
條款22掌握多種排序方式 50
條款23通過智慧型匹配簡化工作 54
條款24用given-when 構造switch 語句 55
條款25用do {}創建內聯子程式 58
條款26 用List::Util 和List::MoreUtils 簡化列表處理 60
條款27用autodie 簡化錯誤處理 63
第3 章 正則表達式 66
條款28了解正則表達式操作符的優先權 66
條款29使用正則表達式的捕獲功能 69
條款30使用更精確的空白字元組 74
條款31使用命名捕獲,給匹配加標籤 77
條款32僅需分組時,用非捕獲括弧 78
條款33小心處理匹配變數 79
條款34能懶則懶,不要貪婪 81
條款35用零寬斷言匹配字串中的特定位置 82
條款36簡單字串處理應避免使用正則表達式 85
條款37提高正則表達式的可讀性 87
條款38避免不必要的回溯 90
條款39僅編譯正則表達式一次 93
條款40預編譯正則表達式 94
條款41正則表達式的性能評測 95
條款42不要濫造正則表達式 97
第4 章子程式 99
條款43理解my 和local 之間的差異 99
條款44若非必要請勿直接使用@_ 106
條款45用wantarray 按需返回列表 108
條款46傳遞引用而非副本 110
條款47用散列傳遞命名參數 113
條款48通過參數原型聲明以特殊方式解析參數 116
條款49創建閉包鎖住數據 118
條款50用子程式創建新子程式 121
第5 章檔案與檔案句柄 124
條款51不要忽略檔案測試操作符 124
條款52始終以三項參數的形式調用open 126
條款53採用不同方式讀取數據流 127
條款54處理字元串的檔案句柄 129
條款55靈活的輸出方式 132
條款56用File::Spec 或Path::Class 處理檔案路徑 134
條款57將數據留於磁碟以節約記憶體 136
第6 章引用 139
條款58理解引用和引用的語法 139
條款59將引用類型和原型進行比較 145
條款60通過引用創建包含數組的數組147
條款61別將匿名數組和列表直接量搞混淆 149
條款62通過匿名散列創建C 風格的struct 結構 150
條款63小心循環數據結構 152
條款64用map 和grep 操作複雜數據結構 154
第7 章CPAN 158
條款65以非管理員許可權安裝CPAN 模組 159
條款66擁有自己的CPAN 161
條款67減少公共代碼帶來的風險 164
條款68安裝模組前先行調研 166
條款69確保Perl 能找到我們的模組 168
條款70為CPAN 作貢獻 171
條款71了解常用模組 173
第8 章Unicode 176
條款72在原始碼中使用Unicode 字元 177
條款73告訴Perl 該用何種編碼方式 179
條款74通過代碼值或名字輸入Unicode 字元 180
條款75位組字串轉換到字元字串 182
條款76Unicode 字元和屬性的模式匹配 185
條款77同字素打交道,而不是字元 188
條款78謹慎處理資料庫中的Unicode 190
第9 章軟體分發 192
條款79用Module::Build 構建發行版 192
條款80不必手工新建軟體發行版 194
條款81給模組取個好名字 198
條款82在代碼中嵌入Pod 文檔 201
條款83限制我們的發行版用於特定平台 204
條款84檢查Pod 文檔 206
條款85嵌入其他語言代碼 209
條款86用XS 連結低級語言,提高運行速度 211
第10 章測試 215
條款87用prove 靈活運行測試 215
條款88有目的性地運行測試 218
條款89用依賴注入避免特殊測試邏輯 220
條款90避免給方法引入不必要的東西 222
條款91把程式寫成模組便於測試 224
條款92用虛擬的對象或接口測試 227
條款93用SQLite 創建測試用資料庫231
條款94用Test::Class 編寫結構化測試 232
條款95項目一開始就準備好測試 235
條款96度量測試覆蓋率 240
條款97把CPAN Testers 當作QA 團隊 243
條款98設定持續編譯系統 244
第11 章警告信息 250
條款99啟用警告功能定位可疑代碼 250
條款100利用詞法作用域選擇性啟用或關閉警告 253
條款101用die 拋出異常 255
條款102用Carp 來獲得棧跟蹤信息 256
條款103正確處理異常 259
條款104通過污染檢查跟蹤危險數據 261
條款105對老舊程式啟用污染警告 263
第12 章資料庫 265
條款106預備SQL 語句以復用並節省時間 265
條款107利用SQL 占位符將參數值自動引起 268
條款108通過綁定返回列快速訪問數據 270
條款109復用資料庫連線 272
第13 章雜項 275
條款110編譯並安裝自己的perl 解釋器 275
條款111用Perl::Tidy 美化代碼 277
條款112使用Perl Critic280
條款113用Log::Log4perl 記錄程式運行狀態 284
條款114明白循環內的數組何時會被修改 289
條款115不要用正則表達式提取逗號分隔的字串 290
條款116用unpack 處理固定列寬的數據 291
條款117用pack 和unpack 對數據作變形處理 293
條款118借用typeglob 訪問符號表 298
條款119用BEGIN 初始化,以END 善後 300
條款120用單行Perl 命令作為迷你程式 302
附錄Perl 資源 307