內容簡介

Perl是一種功能強大的通用編程語言,享有「一種擁有各種語言功能的夢幻腳本語言」、「UNIX中的王牌工具」等美譽,受到了國內程序員和系統管理員的青睞。

《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新聞組上找到。
 

目錄

第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
附錄 練習答案
網路書店 類別 折扣 價格
  1. 新書
    87
    $360