第1章 探索Perl 1
1.1 在线文档 2
1.1.1 perldoc 2
1.1.2 函数定义 3
1.1.3 模块文档 3
1.1.4 如何打印出美观文档 5
1.2 CPAN(模块档案) 5
1.3 安装模块 7
1.3.1 人工安装(UNIX、Linux和Microsoft Windows) 8
1.3.2 处理权限问题 9
1.3.3 使用CPAN安装器(UNIX和Linux) 12
1.3.4 使用CPAN 15
1.3.5 使用Perl包管理器(Microsoft Windows) 16
1.3.6 详细安装向导 17
1.3.7 UNIX安装(所有系统) 18
1.4 使用Perl调试器 21
1.4.1 命令行调试器 22
1.4.2 使用ptkdb调试器 23
1.7.2 模块库 25
1.7.1 在线文档 25
1.7 资源 25
1.6 练习 25
1.5 小结 25
1.7.3 软件 26
第2章 Perl基础知识 27
2.1 编写第一个Perl程序 27
2.2 变量声明和简单表达式 28
2.2.1 变量 28
2.2.2 简单算法和字符串运算符 30
2.2.3 引用规则 30
2.3 读取输入 31
2.2.4 数字常量 31
2.4 if语句和关系运算符 32
2.4.1 elsif语句 33
2.4.2 条件运算符 33
2.4.3 比较运算符 34
2.4.4 defined函数 35
2.5 “真”的定义 36
2.6 循环语句 37
2.7 简单I/O 38
2.7.1 读取文件 38
2.7.3 复制一个文件 40
2.8 小结 40
2.7.2 写入一个文件 40
2.9 练习 41
2.10 资源 41
第3章 数组 42
3.1 基本数组 42
3.1.1 决定数组中的元素个数 43
3.1.2 数组示例 44
3.1.3 数组表达式 44
3.2 操纵数组结尾 45
3.1.6 引用词(qw)运算符 45
3.1.5 带有“黑洞”的数组 45
3.1.4 打印数组 45
3.3 splice函数 48
3.3.1 splice函数的返回值 49
3.3.2 附加splice参数 49
3.4 split和join函数 50
3.4.1 结算支票簿 51
3.4.2 公共split表达式 52
3.4.2 join函数 53
3.5 数组排序 53
3.9 小结 54
3.8 English模块 54
3.7 @ARGV变量 54
3.6 多维数组 54
3.10 练习 55
3.11 资源 56
3.11.1 在线文档 56
3.11.2 模块 56
第4章 正则表达式 57
4.1 基本正则表达式 57
4.1.1 修饰符 59
4.1.2 字符集 59
4.1.4 使用分组来解行 61
4.1.3 空白符(\s) 61
4.1.5 处理可选(l)和限制匹配 62
4.1.6 条件 63
4.1.7 使用正则表达式调试包 66
4.1.8 正则表达式元素小结 75
4.1.9 构建正则表达式 75
4.2 替换 76
4.3 grep函数 77
4.4 小结 77
4.5 练习 77
4.6.1 正则表达式元素 80
4.6 资源 80
4.6.3 在线文档 81
4.6.2 调试符号 81
第5章 Perl的新语法 82
5.1 新且有用的语法 82
5.1.1 foreach语句 82
5.1.2 变量$_ 83
5.1.3 “Here-Doc”语法 84
5.1.4 die函数 85
5.1.5 特殊文件◇ 85
5.1.6 文件测试运算符 86
5.1.8 翻译运算符(tr) 87
5.1.7 redo运算符 87
5.1.9 =左边的数组 88
5.2 Perl的不常用语句 88
5.2.1 unless语句 88
5.2.2 可游荡的if和unless语句 89
5.2.3 _DATA_文件 89
5.3 小结 89
5.4 练习 90
5.5 资源 90
6.1 散列 91
第6章 散列、引用和复杂数据结构 91
6.1.1 打印整个散列 92
6.1.2 散列的简单读和写 93
6.1.3 更复杂的散列读和写 94
6.1.4 检查单词是否位于列表中 94
6.1.5 使用map函数 95
6.1.6 从散列中删除元素 96
6.1.7 数组和散列 97
6.2 引用 97
6.3 将C数据结构翻译成Perl数据结构 99
6.3.2 散列的数组 99
6.3.3 读入日期数组 100
6.3.4 数组的数组 101
6.3.5 打印复杂数据结构 102
6.3.6 复制数据结构 102
6.4 小结 103
6.5 练习 103
6.6.1 在线文档 104
6.6.2 模块 104
6.6 资源 104
7.1 子程序 105
第7章 子程序和模块 105
7.1.1 参数定义更多说明 106
7.1.2 数组和散列参数 106
7.1.3 变量长度参数列表 107
7.1.4 参数定义小结 107
7.1.5 其他参数传递方法 108
7.1.6 无参数定义的函数 108
7.1.7 local声明 108
7.2 包 109
7.2.1 创建包文件 110
7.2.2 提供外部接口 110
7.2.3 use的更多说明 113
7.2.4 组织模块 114
7.2.5 特殊块(BEGIN,END) 114
7.2.6 use与require 115
7.5 资源 116
7.5.1 在线文档 116
7.5.2 模块 116
7.4 练习 116
7.3 小结 116
第8章 面向对象编程 117
8.1 将散列用作对象 117
8.2 基本Perl对象 120
8.2.1 多态 121
8.2.2 信息隐藏 122
8.3 运算符重载 122
8.4 小结 127
8.5 练习 127
8.6.1 在线文档 128
8.6.2 模块 128
8.6 资源 128
9.1 打开文件(温习) 129
9.1.1 打开管道 129
第9章 高级I/O 129
9.1.3 使用(')运算符 130
9.2 sysopen(高级打开) 130
9.1.2 Open小结 130
9.3 读二进制文件 131
9.4 文件处理包 133
9.5 给子程序传递文件句柄 134
9.6 对文件句柄的引用 134
9.9.1 在线文档 135
9.9.3 函数 135
9.9.2 模块 135
9.9 资源 135
9.7 小结 135
9.8 练习 135
第10章 POD 137
10.1 POD(无格式旧式文档) 137
10.1.1 为程序编写文档 137
10.1.2 NAME部分 138
10.1.3 SYNOPSIS部分 138
10.1.4 DESCRIPTION部分 138
10.1.5 OPTIONS部分 139
10.1.6 SEE ALSO部分 140
10.1.7 检查结果 140
10.1.8 将所有部分放在一起 140
10.2 将POD转换成其他可读性格式 142
10.3 在文件中放置-help选项 142
10.4 POD模板 143
10.5 小结 145
10.7.1 在线文档 146
10.7 资源 146
10.7.2 命令 146
10.6 练习 146
第11章 Perl的后台工作 147
11.1 使用Perl时到底发生了什么 147
11.1.1 use strict的工作方式 147
11.1.2 use vars语句 148
11.4 小结 149
11.5 资源 149
11.5.1 在线文档 149
11.3 import和AUTOLOAD的工作方式 149
11.2 Exporter包 149
11.5.2 模块 150
第12章 CGI编程 151
12.1 简单CGI 151
12.2 CGI版本的“Hello World” 151
12.3 基本表单 154
12.3.1 FORM语句 154
12.3.2 文本空白 155
12.3.3 选项列表 155
12.3.4 复选框 156
12.3.5 单选按钮 156
12.3.6 文本区域 156
12.3.9 组合在一起 157
12.3.8 提交按钮 157
12.3.7 隐藏输入 157
12.4 创建CGI程序 158
12.4.1 记录数据 160
12.4.2 编写响应 160
12.4.3 将各个部分放在一起 160
12.5 调试CGI脚本 162
12.5.1 解决“Internal Server Error” 162
12.5.2 交互式调试 163
12.5.3 服务器启动的调试器 165
12.6 安全 166
12.6.1 Taint模式 166
12.6.2 Perl程序是如何崩溃的 167
12.7 Cookie 168
12.10 资源 169
12.10.1 在线文档 169
12.10.2 模块 169
12.9 练习 169
12.8 小结 169
12.10.3 网站 170
第13章 用Tk创建GUI 171
13.1 Tk基础知识 171
13.2 Tk窗口小部件 172
13.2.1 窗口小部件文档 173
13.2.2 使用窗口小部件 173
13.2.3 主事件循环 174
13.3 几何管理器 174
13.3.1 pack 175
13.3.2 grid 177
13.3.3 place 177
13.3.4 form 177
13.4 特殊窗口小部件 177
13.4.1 滚动条(Scollbar) 177
13.4.2 文本(Text) 178
13.6 一般设计提示 179
13.6.1 窗口小部件布局 179
13.6.2 先放置再扩展 179
13.5 事件(event) 179
13.6.3 使用ptkdb 180
13.7 综合起来 180
13.10 资源 187
13.9 练习 187
13.10.1 在线文档 187
13.8 小结 187
13.10.3 网站 188
13.10.2 演示 188
第14章 用Inline::C结合C与Perl 189
14.1 什么是Inline模块 189
14.2 Hello World 189
14.3 简单参数和返回值 190
14.4 Perl如何处理变量 192
14.4.1 访问Perl的SV变量 193
14.4.2 使用SV 194
14.5 返回多个值 196
14.6 从C调用Perl 198
14.7 配置Inline 199
14.8 生成可发布模块 200
14.9 小结 200
14.10 练习 200
14.11 资源 200
14.11.1 在线文档 200
14.11.2 模块 201
14.11.3 应用程序 201
15.1 Perl和数据库 202
15.1.1 MLDBM包 202
第15章 综合运用 202
15.1.2 处理同时数据库访问 203
15.2 数据库设计 204
15.3 数据库实现 204
15.4 disk.pm模块 206
15.5 GUI接口 219
15.5.1 添加弹出窗口 220
15.5.2 查找与再查找 221
15.6 CGI版本 231
15.6.1 错误与消息 234
15.6.2 调试 234
15.6.3 Cookie 235
15.6.4 调试Cookie 236
15.6.5 CGI程序 237
15.7 小结 244
15.8 练习 244
15.9.2 模块 245
15.9.1 在线文档 245
15.9.3 网页 245
15.9 资源 245
第16章 实战 246
16.1 列表的区别 246
16.2 拨号1-800-Confuse-Me 249
16.3 时间调整 251
16.4 日历程序 254
16.4.1 日期格式 255
16.4.2 程序 255
16.5 复制文件检查器 259
16.6 表格格式化 263
16.7 日志文件浏览器 267
16.8 网站检查器 278
16.8.1 解析文件 279
16.8.2 孤立文件检测 280
16.8.3 外部链接检查 281
16.8.4 网站检查器小结 281
16.9 对象文件交叉引用系统 285
16.9.1 ox-gen.pl 286
16.9.2 用ox.pl提取信息 290
16.10 计算Web页点击次数 292
16.10.1 web.pm模块 292
16.9.3 附加工作 292
16.10.2 计算点击数 298
16.10.3 图示结果 299
16.10.4 动态Web页图表 304
16.10.5 对Web页计数的注释 305
16.11 小结 305
16.13.1 模块 306
16.13 资源 306
16.13.2 程序 306
16.12 练习 306
第17章 创建模块 307
17.1 模块创建过程 307
17.1.1 填充文件 309
17.1.2 构建模块 311
17.1.3 使用自动装载器 312
17.2 模块创建详细步骤 313
17.3 调试模块 316
17.4 小结 320
17.5 练习 320
17.6.2 程序 321
17.6.1 在线文档 321
17.6.3 模块 321
17.6 资源 321
附录A 安装Perl 322
附录B 将Perl脚本转换成命令 328
附录C Perl题外话 332
索引 338
6.3.1 散列作为结构 999