目 录
第一部分 使用Perl
第1章 探索Perl 2
1.1 在线文档 3
1.1.1 perldoc 3
1.1.2 函数定义 4
1.1.3 模块文档 4
1.1.4 如何打印出美观文档 6
1.2 CPAN(模块档案) 6
1.3 安装模块 9
1.3.1 人工安装(UNIX、Linux和Microsoft Windows) 9
1.3.2 处理权限问题 11
1.3.3 使用CPAN安装器(UNIX和Linux) 14
1.3.4 使用CPAN 18
1.3.5 使用Perl包管理器(Microsoft Windows) 20
1.3.6 详细安装向导 21
1.3.7 UNIX安装(所有系统) 22
1.4 使用Perl调试器 25
1.4.1 命令行调试器 26
1.4.2 使用ptkdb调试器 28
1.5 小结 29
1.6 练习 29
1.7 资源 30
1.7.1 在线文档 30
1.7.2 模块库 30
1.7.3 软件 30
第2章 Perl基础知识 32
2.1 编写第一个Perl程序 32
2.2 变量声明和简单表达式 33
2.2.1 变量 33
2.2.2 简单算法和字符串运算符 35
2.2.3 引用规则 36
2.2.4 数字常量 37
2.3 读取输入 37
2.4 if语句和关系运算符 38
2.4.1 elsif语句 39
2.4.2 条件运算符 39
2.4.3 比较运行符 40
2.4.4 defined函数 41
2.5 “真”的定义 42
2.5.1 简单除法程序 43
2.6 循环语句 44
2.6.1 for语句 44
2.7 简单I/O 45
2.7.1 读取文件 45
2.7.2 写入一个文件 46
2.7.3 复制一个文件 47
2.8 小结 47
2.9 练习 47
2.10 资源 48
2.10.1 在线文档 48
第3章 数组 49
3.1 基本数组 49
3.1.1 决定数组中的元素个数 50
3.1.2 数组示例 51
3.1.3 数组表达式 51
3.1.4 打印数组 52
3.1.5 带有“黑洞”的数组 52
3.1.6 引用词运算符(qw) 52
3.2 操纵数组结尾 53
3.2.1 处理数组的一部分 54
3.3 splice函数 56
3.3.1 splice函数的返回值 56
3.2.2 附加splice参数 57
3.4 split和join函数 58
3.4.1 结算支票簿 59
3.4.2 公共split表达式 60
3.4.3 join函数 62
3.5 数组排序 62
3.6 多维数组 62
3.7 @ARGV变量 63
3.8 English模块 63
3.9 小结 63
3.10 练习 63
3.11 资源 65
3.11.1 在线文档 65
3.11.2 模块 65
第4章 正则表达式 66
4.1 基本正则表达式 66
4.1.1 修饰符 68
4.1.2 字符集 69
4.1.3 空白符(\s) 70
4.1.4 使用分组来分解行 71
4.1.5 处理可选(|)和限制匹配 72
4.1.6 条件 74
4.1.7 使用正则表达式调试包 77
4.1.8 正则表达式元素小结 88
4.1.9 构建正则表达式 88
4.2 替换 89
4.3 grep函数 90
4.4 小结 90
4.5 练习 91
4.6 资源 94
4.6.1 正则表达式元素 94
4.6.2 调试符号 95
4.6.3 在线文档 95
第5章 Perl的新语法 96
5.1 新且有用的语法 96
5.1.1 foreach语句 96
5.1.2 变量$_ 97
5.1.3 “Here-Doc”语法 98
5.1.4 die函数 100
5.1.5 特殊文件<> 100
5.1.6 文件测试运算符 101
5.1.7 redo运算符 101
5.1.8 翻译运算符(tr) 102
5.1.9 =左边的数组 103
5.2 Perl的不常用语句 103
5.2.1 unless语句 103
5.1.2 可游荡的if和unless语句 104
5.2.3 __DATA__文件 104
5.3 小结 104
5.4 练习 105
5.5 资源 105
5.5.1 在线文档 105
第6章 散列、引用和复杂数据结构 106
6.1 散列 106
6.1.1 打印整个散列 108
6.1.2 散列的简单读和写 108
6.1.3 更复杂的散列读和写 110
6.1.4 检查单词是否位于列表中 110
6.1.5 使用map函数 111
6.1.6 从散列中删除元素 113
6.1.7 数组和散列 113
6.2 引用 114
6.2.1 匿名引用 115
6.3 将C数据结构翻译成Perl数据结构 115
6.3.1 散列作为结构 116
6.3.2 散列的数组 116
6.3.3 读入日期数组 117
6.3.4 数组的数组 119
6.3.5 打印复杂数据结构 120
6.3.6 复制数据结构 120
6.4 小结 120
6.5 练习 121
6.6 资源 121
6.6.1 在线文档 121
6.6.2 模块 121
第7章 子程序和模块 123
7.1 模块 123
7.1.1 参数定义更多说明 124
7.1.2 数组和散列参数 124
7.1.3 变量长度参数列表 125
7.1.4 参数定义小结 126
7.1.5 其它参数传递方法 126
7.1.6 无参数定义的函数 127
7.1.7 local声明 127
7.2 包 128
7.2.1 创建包文件 129
7.2.2 提供外部接口 129
7.2.3 use的更多说明 133
7.2.4 组织模块 134
7.2.5 特殊块(BEGIN, END) 134
7.2.6 use与require 135
7.3 小结 136
7.4 练习 136
7.5 资源 136
7.5.1 在线文档 136
7.5.2 模块 136
第8章 面向对象编程 138
8.1 将散列用作对象 138
8.1.1 设计注释 141
8.2 基本Perl对象 141
8.2.1 多态 143
8.2.2 信息隐藏 144
8.3 运行符重载 144
8.4 小结 150
8.5 练习 150
8.6 资源 151
8.6.1 在线文档 151
8.6.2 模块 151
第9章 高级I/O 152
9.1 打开文件(温习) 152
9.1.1 打开管道 152
9.1.2 Open小结 153
9.1.3 使用`运算符 153
9.2 sysopen(高级打开) 154
9.3 读二进制文件 154
9.4 文件处理包 157
9.5 给子程序传递文件句柄 157
9.6 对文件句柄的引用 158
9.7 小结 159
9.8 练习 159
9.9 资源 159
9.9.1 在线文档 159
9.9.2 模块 159
9.9.3 函数 159
第10章 POD 161
10.1 POD(无格式旧式文档) 161
10.1.1 为程序编写文档 161
10.1.2 NAME部分 162
10.1.3 SYNOPSIS部分 162
10.1.4 DESCRIPTION部分 162
10.1.5 OPTIONS部分 163
10.1.6 SEE ALSO部分 164
10.1.7 检查结果 164
10.1.8 将所有部分放在一起 164
10.2 将POD转换成其它可读性格式 166
10.3 在文件中放置--help选项 167
10.4 POD模板 168
10.5 小结 171
10.6 练习 171
10.7 资源 171
10.7.1 在线文档 171
10.7.2 命令 171
第11章 Perl的后台工作 173
11.1 使用Perl时到底发生了什么 173
11.1.1 use strict的工作方式 173
11.1.2 use vars语句 174
11.2 Exporter包 175
11.3 import和AUTOLOAD的工作方式 175
11.4 小结 176
11.5 资源 176
11.5.1 在线文档 176
11.5.2 模块 176
第12章 CGI编程 177
12.1 简单CGI 177
12.2 CGI版本的“Hello World” 177
12.2.1 运行程序 178
12.3 基本表单 180
12.3.1 FORM语句 181
12.3.2 文本空白 182
12.3.3 选项列表 182
12.3.4 复选框 182
12.3.5 单选按钮 183
12.3.6 文本区域 183
12.3.7 隐藏输入 183
12.3.8 提交按钮 184
12.3.9 组合在一起 184
12.4 创建CGI程序 185
12.4.1 记录数据 187
12.4.2 编写反应 188
12.4.3 将各个部分放在一起 188
12.5 调试CGI脚本 190
12.5.1 解决“Internal Server Error” 191
12.5.2 交互式调试 191
12.5.3 服务器启动的调试器 193
12.6 安全 194
12.6.1 Taint模式 195
12.6.2 Perl程序是如何崩溃的 196
12.7 Cookie 197
12.8 小结 198
12.9 练习 198
12.10 资源 198
12.10.1 在线文档 198
12.10.2 模块 198
12.10.3 网站 199
第13章 用Tk创建GUI 200
13.1 Tk基础知识 200
13.2 Tk窗口小部件 201
13.2.1 窗口小部件文档 202
13.2.2 使用窗口小部件 202
13.2.3 主事件循环 203
13.3 几何管理器 204
13.3.1 pack 204
13.3.2 grid 206
13.3.3 place 206
13.3.4 form 206
13.4 特殊窗口小部件 207
13.4.1 滚动条(Scollbar) 207
13.4.2 文本(Text) 208
13.5 事件(event) 208
13.6 一般设计提示 209
13.6.1 窗口小部件布局 209
13.6.2 先放置再扩展 209
13.6.3 使用ptkdb 209
13.7 综合起来 210
13.7.1 搜索 211
13.8 小结 218
13.9 练习 218
13.10 资源 219
13.10.1 在线文档 219
13.10.2 演示 219
13.10.3 网站 219
第14章 用Inline::C结合C与Perl 220
14.1 什么是Inline模块 220
14.2 Hello World 220
14.3 简单参数和返回值 222
14.3.1 应付错误 223
14.4 Perl如何处理变量 224
14.4.1 访问Perl的SV变量 225
14.4.2 使用SV 226
14.5 返回多个值 228
14.6 从C调用Perl 231
14.7 配置Inline 232
14.8 生成可发布模块 233
14.9 小结 233
14.10 练习 233
14.11 资源 234
14.11.1 在线文档 234
14.11.2 模块 234
14.11.3 应用程序 234
第15章 综合运用 235
15.1 Perl和数据库 235
15.1.1 MLDBM包 235
15.1.2 处理同时数据库访问 237
15.2 数据库设计 237
15.3 数据库实现 238
15.3.1 保存和读取记录 238
15.4 disk.pm模块 239
15.4.1 命令行应用 249
15.5 GUI接口 256
15.5.1 添加弹出窗口 257
15.5.2 查找与再查找 258
15.6 CGI版本 271
15.6.1 错误与消息 274
15.6.2 调试 275
15.6.3 Cookie 275
15.6.4 调试Cookie 276
15.6.4 CGI程序 277
15.7 小结 286
15.9 练习 286
15.9 资源 287
15.9.1 在线文档 287
15.9.2 模块 287
15.9.3 网页 287
第16章 实战 288
16.1 列表的区别 288
16.2 拨号1-800-Confuse-Me 292
16.3 时间调整 294
16.4 日历程序 298
16.4.1 日期格式 299
16.4.2 程序 299
16.5 复制文件检查器 304
16.6 表格格式化 309
16.7 日志文件浏览器 314
16.8 网站检查器 328
16.8.1 解析文件 328
16.8.2 孤立文件探测 330
16.8.3 外部链接检查 331
16.8.4 网站检查器小结 331
16.9 对象文件交叉引用系统 336
16.9.1 ox-gen.pl 337
16.9.2 用ox.pl提取信息 343
16.9.3 附加工作 345
16.10 计算web页点击次数 345
16.10.1 web.pm模块 345
16.10.2 计算点击数 352
16.10.3 图示结果 354
16.10.4 动态web页图表 360
16.10.5 对web页计数的注释 361
16.11 小结 361
16.12 练习 361
16.13 资源 362
16.13.1 模块 362
16.13.2 程序 362
第17章 创建模块 363
17.1 模块创建过程 363
17.1.1 填充文件 365
17.1.2 构建模块 368
17.1.3 使用自动装载器 370
17.2 模块创建详细步骤 370
17.3 调试模块 374
17.3.1 运行调试器 375
17.4 小结 379
17.5 练习 379
17.6 资源 380
17.6.1 在线文档 380
17.6.2 程序 380
17.6.3 模块 380
第二部分 附录
附录A 安装Perl 382
A.1 在Linux上安装Perl 382
A.2 从源代码在UNIX或Linux上安装Perl 382
A.2.1 安装目录 382
A.2.2 一步步安装 383
A.2.3 UNIX/Linux安装快速参考 387
A.3 在Microsoft Windows上安装Perl 388
附录B 将Perl脚本转换成命令 389
B.1 UNIX/Linux变幻字符串 389
B.2 使用env程序 390
B.3 Shell脚本方法 390
B.3.1 直接运行脚本 391
B.4 Microsoft Windows .bat文件 391
B.5 资源 393
B.5.1 命令 393
B.5.2 在线文档 393
附录C Perl题外话 394
C.1 数据库 394
C.2 C/C++程序员工具 394
C.2.1 Linux交叉引用 395
C.2.2 用Mozilla跟踪漏洞 396
C.2.3 web搜索引擎 396
C.2.4 文本搜索GUI 397
C.2.5 相片簿 398
C.2.6 电子商务 399
C.3 资源 399
C.3.1 程序 399
索引 401