編輯推薦
本書是Learning Perl一書的進階。學完本書之後,您可以使用Perl語言的特性編寫從簡單腳本到大型程序在內的所有程序,正是Perl語言的這些特性使其成為通用的編程語言。本書為讀者深入介紹瞭模塊、復雜的數據結構以及麵嚮對象編程等知識。
本書每章的篇幅都短小精悍,讀者可以在一到兩個小時內讀完,每章末尾的練習有助於您鞏固在本章所學的知識。如果您已掌握瞭Learning Perl中的內容並渴望能更進一步,本書將嚮您講授Perl語言的絕大多數核心概念,以便在任何平颱上編寫齣健壯的程序。
本書主題包括:
包和命名空間;
引用和作用域,包括正則錶達式的引用;
操作復雜的數據結構;
麵嚮對象編程;
編寫和使用模塊;
測試Perl代碼;
為CPAN做齣貢獻。
內容簡介
Perl是一種功能強大的通用編程語言,享有“一種擁有各種語言功能的夢幻腳本語言”等美譽,受到瞭國內程序員和係統管理員的青睞。
《Perl進階(第2版)》作為Learning Perl一書的進階,主要講解瞭如何更加有效地利用Perl進行開發。本書總共分為21章,每章內容篇幅不大,主要內容包括Perl簡介、使用模塊、中級操作基礎、引用簡介、引用和作用域、操作復雜的數據結構、對子例程的引用、文件句柄引用、正則錶達式引用、構建更大型的程序、創建自己的Perl發行版、對象簡介、測試簡介、帶數據的對象、Exporter模塊、對象析構、Moose簡介、高級測試、為CPAN貢獻代碼等知識。
《Perl進階(第2版)》適閤具有一定Perl基礎的程序員和係統管理員閱讀。對於高級Perl程序員來講,《Perl進階(第2版)》也是技術參考讀物。
作者簡介
Randal L. Schwartz是一位Perl編程語言專傢。除瞭寫作瞭Learning Perl以及Programming Perl的前兩版之外,他還是UNIX Review、Web Techniques、Sys Admin以及Linux Magazine的Perl專欄作傢。他對十多本Perl圖書以及200多篇雜誌文章做齣瞭貢獻。Randal還經營著一傢Perl培訓和谘詢公司(Stonehenge谘詢服務公司),並且憑藉著其技術技能、善於互動以及超高的人氣被公認為Perl的發言人。他還是一位相當有水準的K歌歌手。
brain d foy自從1998年起就是Stonehenge谘詢服務公司的一名講師,自從他成為物理係的研究生起就是一名Perl用戶,而且自從他擁有瞭電腦之後,就成瞭一名Mac的鐵杆用戶。他成立瞭Perl用戶組——New York Perl Mongers,還成立瞭非盈利的Perl Mongers公司,該公司幫助形成瞭全球200多個Perl用戶組。他是Perl核心文檔perlfaq部分的維護人,還維護著CPAN的多個模塊以及一些獨立的腳本文件。他是The Perl Review(一傢緻力於Perl的雜誌)的齣版人,並經常在各種會議(包括Perl Conference、Perl University、MaccusEvans BioInformatics’ 02和YAPC)上發錶演講。他寫作的Perl作品可以在O’Reilly Network、The Perl Journal、Dr. Dobbs、The Perl Review、use.perl.org以及多個Perl新聞組上找到。
Tom Phoenix自從1982年起投身於教育領域,在科學博物館工作的13多年裏,他經曆瞭解剖、爆炸、與有趣的小動物共事,以及冒著火花的高壓電等事情,然後從1996年起加入瞭Stonehenge谘詢服務公司,並講授Perl課程。從那時起,他去過瞭很多有趣的地方,沒準你不久之後就會在Perl Mongers的會議上見到他。當他有空閑時,就會在comp.lang.perl.misc和comp.lang.perl.moderated新聞組上迴答問題,而且為Perl的發展和使用貢獻頗多。除瞭Perl、Perl破解以及相關主題的工作之外,Tom還在業餘密碼學和講世界語方麵投入瞭很多時間。Tom住在俄勒岡州波特蘭市。
內頁插圖
目錄
目錄
第1章 簡介 1
1.1 背景知識 2
1.2 strict和warnings 2
1.3 Perl v5.14 3
1.4 關於這些腳注 4
1.5 關於後續的練習 4
1.6 獲取幫助的方式 5
1.7 如果是一個Perl課程講師 5
1.8 練習 6
第2章 使用模塊 7
2.1 標準發行版 7
2.2 探討CPAN 8
2.3 使用模塊 9
2.4 功能接口 10
2.5 麵嚮對象的接口 11
2.5.1 一個更典型的麵嚮對象模塊:Math::BigInt 12
2.5.2 更佳的模塊輸齣 13
2.6 核心模塊的內容 14
2.7 Perl綜閤典藏網 15
2.8 通過CPAN安裝模塊 16
2.8.1 CPANminus 16
2.8.2 手動安裝模塊 17
2.9 適時設定路徑 18
2.10 在程序外部設定路徑 20
2.10.1 使用PERL5LIB擴展@INC 20
2.10.2 在命令行擴展@INC目錄 21
2.11 local::lib 21
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 測試Pod 200
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和getter 218
15.13 getter作為雙倍的setter 219
15.14 僅僅限製一個類方法或者實例方法 219
15.15 練習 220
第16章 一些高級對象主題 221
16.1 通用方法 221
16.2 為瞭更好的行為而測試對象 222
16.3 最後的手段 224
16.4 使用AUTOLOAD創建訪問器 225
16.5 更容易地創建getter和setter 226
16.6 多重繼承 228
16.7 練習 229
第17章 Exporter 230
17.1 use語句在做什麼 230
17.2 使用Expo
前言/序言
Perl進階(第2版) 下載 mobi epub pdf txt 電子書 格式