目錄
第1章 簡介1
1.1 背景知識2
1.2 strict和warnings2
1.3 Perl v5.143
1.4 關於這些腳注4
1.5 關於後續的練習4
1.6 獲取幫助的方式5
1.7 如果是一個Perl課程講師5
1.8 練習6
第2章 使用模塊7
2.1 標準發行版7
2.2 探討CPAN8
2.3 使用模塊9
2.4 功能接口10
2.5 麵嚮對象的接口11
2.5.1 一個更典型的麵嚮對象模塊:Math::BigInt12
2.5.2 更佳的模塊輸齣13
2.6 核心模塊的內容14
2.7 Perl綜閤典藏網15
2.8 通過CPAN安裝模塊16
2.8.1 CPANminus16
2.8.2 手動安裝模塊17
2.9 適時設定路徑18
2.10 在程序外部設定路徑20
2.10.1 使用PERL5LIB擴展@INC20
2.10.2 在命令行擴展@INC目錄21
2.11 local::lib21
2.12 練習23
第3章 中級基礎24
3.1 列錶操作符24
3.1.1 使用grep錶達式過濾列錶25
3.1.2 使用map轉換列錶27
3.2 使用eval捕獲錯誤28
3.3 用eval語句塊動態編譯代碼30
3.4 使用do語句塊31
3.5 練習32
第4章 引用簡介33
4.1 在多個數組上完成相同的任務33
4.2 PeGS:Perl圖形結構35
4.3 對數組取引用36
4.4 對數組引用進行解引用操作38
4.5 去除大括號40
4.6 修改數組40
4.7 嵌套的數據結構41
4.8 用箭頭簡化嵌套元素的引用43
4.9 散列的引用44
4.10 檢查引用類型47
4.11 練習49
第5章 引用和作用域51
5.1 關於數據引用的更多信息51
5.2 如果它曾是變量名將會怎樣52
5.3 引用計數和嵌套數據結構53
5.4 當引用計數齣現問題時55
5.5 直接創建匿名數組57
5.6 創建匿名散列59
5.7 自動帶入61
5.8 自動帶入和散列63
5.9 練習65
第6章 操作復雜的數據結構67
6.1 使用調試器查看復雜的數據67
6.2 使用Data::Dumper模塊查看復雜的數據71
6.3 數據編組74
6.3.1 使用Storable模塊對復雜數據排序75
6.3.2 YAML模塊80
6.3.3 JSON模塊81
6.4 使用map和grep操作符81
6.5 應用一點間接方法81
6.6 選擇和改變復雜數據83
6.7 練習84
第7章 對子例程的引用86
7.1 對命名子例程的引用86
7.2 匿名子例程90
7.3 迴調92
7.4 閉包93
7.5 從一個子例程返迴另一個子例程94
7.6 作為輸入參數的閉包變量97
7.7 閉包變量作為靜態局部變量98
7.8 查詢我們自己的身份101
7.8.1 令人著迷的子例程102
7.8.2 轉儲閉包105
7.9 練習105
第8章 文件句柄引用107
8.1 舊方法107
8.2 改進的方法108
8.3 指嚮字符串的文件句柄110
8.4 文件句柄集閤111
8.5 IO::Handle模塊和其他相應的模塊112
8.5.1 IO::File模塊113
8.5.2 IO::Scalar模塊114
8.5.3 IO::Tee模塊115
8.5.4 IO::Pipe模塊116
8.5.5 IO::Null模塊和IO::Interactive模塊117
8.6 目錄句柄117
8.7 練習118
第9章 正則錶達式引用120
9.1 正則錶達式引用之前120
9.2 預編譯模式122
9.2.1 正則錶達式選項123
9.2.2 應用正則錶達式引用123
9.3 作為標量的正則錶達式124
9.4 建立正則錶達式126
9.5 創建正則錶達式的模塊128
9.5.1 使用常見的模式128
9.5.2 組裝正則錶達式129
9.6 練習130
第10章 實用的引用技巧132
10.1更佳的輸齣132
10.2 用索引排序134
10.3 更為高效的排序135
10.4 施瓦茨變換136
10.5 使用施瓦茨變換實現多級排序137
10.6 遞歸定義的數據138
10.7 構建遞歸定義的數據139
10.8 顯示遞歸定義的數據142
10.9 避免遞歸143
10.10 練習146
第11章 構建更大型的程序148
11.1 修改通用代碼148
11.2 使用eval插入代碼149
11.3 使用do語句150
11.4 使用require語句151
11.5 命名空間衝突的問題153
11.6 使用包作為命名空間分隔符154
11.7 Package指令的作用域156
11.8 包和專門詞匯157
11.9 練習159
第12章 創建你自己的發行版160
12.1 Perl模塊的兩個構建係統160
12.1.1 在Makefile.PL內部161
12.1.2 在Build.PL文件內部162
12.2 我們的第一個發行版163
12.2.1 h2xs工具163
12.2.2 Module::Starter模塊164
12.2.3 定製模版165
12.3 在你的發行版內部165
12.3.1 META文件167
12.3.2 添加額外的模塊168
12.4 模塊內部169
12.5 老式文檔171
12.5.1 段落的Pod命令172
12.5.2 Pod段落172
12.5.3 Pod格式標記173
12.5.4 檢查Pod格式174
12.6 模塊中的代碼174
12.7 模塊構建的總結175
12.7.1 創建基於Module::Build模塊的發行版175
12.7.2 創建ExtUtils::Makemaker發行版176
12.8 練習176
第13章 對象簡介177
13.1 如果我們可以和動物對話177
13.2 介紹方法的調用箭頭179
13.3 方法調用的額外參數180
13.4 調用第二個方法進一步簡化181
13.5 關於@ISA的幾個注意事項183
13.6 方法重寫184
13.7 開始從不同的地方查找186
13.8 使用SUPER的實現方法186
13.9 要對@_做些什麼187
13.10 我們在哪裏187
13.11 牧場總結187
13.12 練習189
第14章 測試簡介190
14.1 為什麼需要測試190
14.2 Perl的測試流程191
14.3 測試的藝術193
14.4 測試用具195
14.5 標準測試195
14.5.1 模塊編譯的檢查196
14.5.2 模闆測試198
14.5.3 測試Pod200
14.6 添加第一個測試201
14.7 測量測試覆蓋率204
14.7.1 子例程覆蓋率205
14.7.2 語句覆蓋率205
14.7.3 分支覆蓋率205
14.7.4 條件覆蓋率206
14.8 練習206
第15章 帶數據的對象208
15.1 馬屬於馬類,各從其類是嗎208
15.2 調用實例方法210
15.3 訪問實例數據211
15.4 如何構建Horse的實例211
15.5 繼承構造函數212
15.6 編寫能夠使用類或實例作為參數的方法213
15.7 為方法添加參數213
15.8 更有趣的實例214
15.9 一匹不同顔色的馬215
15.10 收迴存款216
15.11 不要查看“盒子”裏麵的內容217
15.12 更快的setter和getter218
15.13 getter作為雙倍的setter219
15.14 僅僅限製一個類方法或者實例方法219
15.15 練習220
第16章 一些高級對象主題221
16.1 通用方法221
16.2 為瞭更好的行為而測試對象222
16.3 最後的手段224
16.4 使用AUTOLOAD創建訪問器225
16.5 更容易地創建getter和setter226
16.6 多重繼承228
16.7 練習229
……
第17章Exporter
第18章對象析構
第19章Moose簡介
第20章高級測試
第21章貢獻到CPAN
附錄練習答案
· · · · · · (
收起)