前言 1
第一章 最佳实践 9
三个目标 11
改变习惯 15
第二章 代码部署 16
括号方式 17
关键字 19
子程序和变量 20
内置函数 20
键和索引 22
运算符 22
分号 23
逗号 25
代码行的长度 26
缩排 27
制表符 28
块 30
组块 31
Else 32
垂直对齐 34
断开长行 35
非末端表达式 37
按优先级断开 37
赋值运算 38
三元运算符 39
列表 40
自动化部署 41
第三章 命名惯例 44
标识符 45
布尔值 48
引用变量 49
数组和散列 51
下划线 52
大小写 53
缩写 54
模糊的缩写 55
模糊的名称 56
实用子程序 57
第四章 值和表达式 59
字符串定界符 59
空字符串 61
单字符字符串 61
转义字符 62
常量 63
前导零 67
长数字 68
多行字符串 68
Here Document 69
Heredoc缩排 70
Heredoc终止符号 71
Heredoc引号 72
未修饰字 73
胖逗号” 75
少用逗号 76
低优先级运算符 78
列表 79
列表成员关系 80
第五章 变量 82
词法变量 82
包变量 84
局域化 86
初始化 87
标点变量 88
标点变量局域化 90
匹配变量 91
美元符号-下划线 94
数组索引 97
切片 98
切片部署 99
切片分离 99
第六章 控制结构 102
if块 102
后缀选择器 103
其他后缀修饰符 104
否定控制语句 106
C风格的循环 109
不必要的索引标示 110
必要的索引标示 112
迭代器变量 114
非词法的循环迭代器 117
列表的产生 119
列表的选取 120
列表的转换 121
复杂映射 122
列表处理的副作用 123
多部分选取 126
值的切换 127
表格式的三元表达式 130
do-while循环 132
线性编码 134
分布式控制 135
重做 137
循环标签 138
第七章 说明文档 142
说明文档的类型 142
样板文件(boilerplate) 143
扩展样板文件 147
地点 148
集中 149
位置 149
技术说明文档 150
注释 150
算法说明文档 152
阐明式说明文档 153
自卫式说明文档 153
指示式说明文档 154
推论式说明文档 155
校对 157
第八章 内置函数 158
排序 158
逆转列表 161
逆转标量 162
固定宽度的数据 163
分隔的数据 166
可变宽度的数据 168
字符串的求值 170
自动化排序 173
子字符串 174
散列的值 175
glob 176
睡眠 177
map和grep 178
实用程序 179
第九章 子程序 184
调用语法 184
同名异物 186
自变量列表 187
具名自变量 190
缺漏的自变量 192
默认自变量值 194
标量返回值 195
上下文返回值 197
多上下文返回值 200
原型 203
隐式返回 205
返回失败 208
第十章 I/O 211
文件句柄 211
间接文件句柄 213
文件句柄局域化 214
完完整整地开启 215
错误检查 217
清理 218
输入循环 219
基于行的输入 221
简单吃进(Simple Slurping) 222
强力吃进 223
标准输入 225
打印至文件句柄 226
简单提示 226
交互性 227
强力提示 229
进度指示器 231
进度指示器自动化 233
自动刷新 233
第十一章 引用 236
解引用 236
大括号式引用 237
符号引用 239
循环引用 241
第十二章 正则表达式 245
扩展格式 246
行的边界 247
字符串边界 249
字符串末尾 250
匹配任何东西 251
懒惰标记(Lazy Flag) 252
大括号定界符 253
其他定界符 256
元字符 257
具名字符 258
特性 258
空白 260
无约束的重复 260
捕获小括号 262
捕获的值 263
捕获变量 264
分段匹配(Piecewise Matching) 267
表格式正则表达式 269
构建正则表达式 271
预制的(canned)正则表达式 273
交替选择 275
分离交替选择 276
回溯 279
字符串比较 281
第十三章 错误处理 283
异常 284
内置函数失败 288
上下文失败 289
系统失败 290
可复原的失败 291
报告失败 292
错误消息 294
替错误编写说明文档 296
OO异常 297
易变的错误消息 300
异常层次 300
处理异常 302
异常类 303
取出异常 306
第十四章 命令行处理 309
命令行结构 310
命令行惯例 311
元选项 313
原位自变量 314
命令行的处理 316
接口一致 321
应用程序间一致性 324
第十五章 对象 327
使用OO 328
准则 328
伪散列 330
受限散列 331
封装 331
构造函数 340
克隆 341
析构函数 344
方法 345
访问器 347
lvalue访问器 353
间接对象 356
类接口 358
运算符重载 361
强制 363
第十六章 类层次 366
继承 367
对象 368
对象的bless 371
构造函数自变量 374
基类初始化 377
构造和析构 382
自动化类层次 389
属性破坏 390
属性的建立 393
强制 394
累积方法 395
自动加载 399
第十七章 模块 404
接口 404
重构 408
版本编号 411
版本需求 412
导出 414
声明式导出 416
接口变量 417
创建模块 422
标准链接库 423
CPAN 425
第十八章 测试和调试 426
测试案例 426
模块化测试 427
测试集 430
失败 431
要测试什么? 432
调试和测试 433
责难(stricture) 435
警告 437
正确性 438
覆盖责难 439
调试器 442
手动调试 443
半自动化调试 445
第十九章 其他主题 448
版本控制 448
其他语言 449
配置文件 452
格式 455
绑定 458
机巧 460
封装的机巧 461
性能测试 462
内存 466
缓存机制 467
备忘 469
缓存机制最优化 470
剖析 471
引入缺陷 473
附录一 Perl基本的最佳实践 475
附录二 Perl最佳实践 478
附录三 编辑器配置 490
附录四 推荐的模块和实用程序 496
附录五 参考文献 503