第一篇 Perl语言 1
第一章 Perl语言概述 1
1.1 Perl的历史 1
1.2 Perl的优点 1
1.3 Perl的用途 2
1.4 基本概念 2
1.5 Perl预览 3
1.5.1 “Hey!My reader”程序 3
1.5.2 提出问题并记录结果的程序 3
1.5.3 条件语句示例程序 4
1.5.4 猜密码程序 5
1.5.5 一个人不止一个密码时的猜密码程序 5
1.5.6 不同的人对应不同的密码时的猜密码程序 7
1.5.7 几种密码输入格式的处理程序 8
1.5.8 对每个人都像Randal一样处理的程序 9
1.5.9 更模块化的程序 11
1.5.10 把密码表挪到单个文件里边的程序 13
1.5.11 确保尽可能安全的程序 15
1.5.12 当密码出错时给出警告的程序 16
1.5.13 在当前目录下有多个密码文件的处理程序 17
1.5.14 列出密码清单的程序 18
1.5.15 使旧的密码表更明显的程序 19
1.5.16 维护一个上次用户猜测的数据库的程序 20
1.5.17 最后的程序 21
第二章 建立Perl工作环境 25
2.1 获取Perl源代码 25
2.1.1 Unix版本 26
2.1.2 MS-DOS版本 26
2.1.3 Perl的NetWare版本 26
2.1.4 Perl的Windows 95和Windows NT版本 26
2.1.5 Perl的OS/2版本 26
2.1.6 Perl的Linux版本 27
2.2 Perl的安装 27
2.2.1 Unix版本的安装 27
2.2.2 Win32版本的安装 28
2.2.3 OS/2版本的安装 28
2.2.4 Linux版本的安装 28
第三章 Perl语言速成 29
3.1 数据类型 29
3.1.1 Scalars(标量) 29
3.1.2 Arrays(数组) 31
3.1.3 Hashes(哈希表) 34
3.1.4 handles(句柄) 37
3.2 运算符及表达式 40
3.3 Perl的控制语句 45
3.3.1 语句块 45
3.3.2 if...elseif...else/unless语句 45
3.3.3 for语句 47
3.3.4 foreach语句 47
3.3.5 while/until语句 48
3.3.6 跳出控制结构的语句 50
3.4 Perl的函数 51
3.4.1 用户自定义函数 51
3.4.2 Perl的内部函数 54
3.5 模式匹配 89
3.5.1 规则表达式及模式简介 89
3.5.2 模式匹配操作符 89
3.5.3 规则表达式语法 90
3.5.4 转义序列 91
3.5.5 字符类 92
3.5.6 锚点 92
3.5.7 限量符 93
3.5.8 模式匹配变量 93
3.5.9 扩展规则表达式 94
3.5.10 split和join函数 94
3.6 面向对象设计 95
3.6.1 对象及类的简介 95
3.6.2 Perl的对象 96
3.6.3 对象只是一个被引用的事物 96
3.6.4 类只是一个包 98
3.6.5 方法只是一个子程序 98
3.6.6 方法引用 99
3.6.7 管理实例数据 101
3.6.8 管理类数据 102
3.6.9 把类用作结构 104
3.6.10 克隆对象 105
3.6.11 写一个可继承的类 106
3.6.12 毁坏器 107
3.6.13 自动调用方法 108
3.6.14 垃圾收集 109
3.7 Perl如何访问数据库 111
第四章 包、库和模块 113
4.1 引言 113
4.1.1 模块 114
4.1.2 进口/出口规则 115
4.1.3 别的种类的库文件 115
4.1.4 不要重复编写代码 116
4.2 模块接口的定义 116
4.3 捕获在require或use中的错误 118
4.4 延迟到运行时才用 119
4.5 使模块独占变量 120
4.6 确定调用者的包 122
4.7 自动模块清理 124
4.8 使用自己的模块目录 125
4.9 发布模块如何准备 126
4.10 使用SelfLoader加速模块调入 127
4.11 使用AutoLoader加速模块调入 128
4.12 覆盖内部函数 129
4.13 像内部函数那样报告错误和警告信息 130
4.14 间接引用包 131
4.15 使用h2ph转换C语言的#include文件 132
4.16 使用h2xs建立一个C语言代码模块 134
4.17 使用pod为模块嵌入文档 137
4.18 建立和安装一个CPAN模块 138
4.19 模块模板示例 140
4.20 取得已安装的模块的版本号和描述信息的程序实例 141
第二篇 MySQL数据库管理系统 146
第五章 MySQL数据库概述 146
5.1 MySQL的历史 146
5.2 MySQL的主要特点 146
5.3 MySQL的稳定性如何 148
5.4 2000年问题 149
第六章 MySQL的安装及基本使用 151
6.1 安装MySQL 151
6.1.1 怎样获得MySQL 151
6.1.2 MySQL支持的操作系统 153
6.1.3 确定使用哪一个版本 153
6.1.4 安装布局 154
6.1.5 安装MySQL二进制发布 155
6.1.6 安装MySQL源代码发布 159
6.1.7 如何解决使用Perl的DBI/DBD接口出现的问题 162
6.2 MySQL数据库语言 163
6.2.1 基本数据类型 163
6.2.2 数据库、表、索引、列和别名的名称规范 165
6.2.3 列类型 166
6.3 MySQL数据库函数 178
6.3.1 分组函数 178
6.3.2 一般的算术操作 178
6.3.3 位函数 179
6.3.4 逻辑运算函数 179
6.3.5 比较操作符 180
6.3.6 字符串比较函数 183
6.3.7 强制操作符 184
6.3.8 流控制函数 184
6.3.9 数学函数 185
6.3.10 字符串函数 189
6.3.11 日期和时间函数 194
6.3.12 其他函数 200
6.3.13 用于GROUP BY子句的函数 202
6.4 常用SQL语句的语法 203
第七章 数据库系统的管理与维护 220
7.1 MySQL管理介绍 220
7.1.1 管理职责概述 220
7.1.2 常规管理 221
7.1.3 安全性 222
7.1.4 数据库修复和维护 222
7.2 MySQL存取权限系统 222
7.2.1 权限系统做什么 222
7.2.2 MySQL用户名和口令 223
7.2.3 与MySQL服务器连接 223
7.2.4 使用户的口令安全 224
7.2.5 MySQL提供的权限 224
7.2.6 权限系统工作原理 226
7.2.7 存取控制,阶段1:连接证实 228
7.2.8 存取控制,阶段2:请求证实 231
7.2.9 权限更改何时生效 233
7.2.10 建立初始的MySQL权限 233
7.2.11 向MySQL增加新用户权限 234
7.2.12 怎样设置口令 237
7.2.13 Access denied错误的原因 237
7.2.14 怎样使MySQL安全以对抗解密高手 240
7.3 维护MySQL安装 241
7.3.1 使用myisamchk进行表的维护和崩溃恢复 241
7.3.2 建立一个数据库表维护规范 244
7.3.3 获得关于一个表的信息 244
7.3.4 使用myisamchk进行崩溃恢复 250
7.3.5 日志文件维护 252
第三篇 Perl及MySQL Web编程 254
第八章 建立Web应用环境 254
8.1 引言 254
8.2 建立Linux下Web开发环境 254
8.2.1 网络操作系统采用Linux 255
8.2.2 Web服务器采用Apache 255
8.2.3 数据库采用MySQL 255
8.2.4 脚本语言采用Perl 255
8.2.5 客户端的软件 255
8.2.6 开发人员软件 256
8.2.7 Apache和Perl模块的安装 256
8.3 建立Windows 98下Web开发环境 257
8.3.1 准备好需要的文件 257
8.3.2 软件安装 257
8.3.3 软件测试 259
8.4 Perl与MySQL的数据库开发环境 260
8.4.1 Perl 5.0 260
8.4.2 Perl数据库接口 263
8.5 Perl与MySQL连接时应注意的问题 266
8.5.1 使用PerlDBI/DBD接口的问题 266
8.5.2 系统特定的问题 267
第九章 CGI程序设计 276
9.1 引言 276
9.1.1 CGI的提出 276
9.1.2 CGI的工作原理 276
9.1.3 CGI与其他WWW技术的关系 277
9.2 CGI编程简介 277
9.2.1 CGI的调用方式 278
9.2.2 环境变量 278
9.2.3 一个Perl编写的CGI例子 279
9.3 CGI程序的结构 280
9.3.1 Get和Post 280
9.3.2 初始化 281
9.3.3 处理 281
9.3.4 输出结果 281
9.3.5 终止 282
9.3.6 设计CGI程序的几点建议 282
9.4 CGI程序环境 285
9.4.1 标准环境变量 285
9.4.2 平台独立性 287
9.4.3 服务器独立性 287
9.4.4 CGI库 288
9.5 CGI的局限 291
第十章 使用Perl编写CGI程序 293
10.1 引言 293
10.1.1 模块简介 293
10.1.2 Perl中的类 293
10.1.3 方法 296
10.2 Perl中的包和模块 298
10.2.1 require函数 298
10.2.2 包 300
10.2.3 模块 302
10.3 CGI.PM 304
10.3.1 CPAN 304
10.3.2 CGI.PM 305
10.4 CGI方法 311
10.4.1 保存表单状态 311
10.4.2 创建HTTP头部 313
10.4.3 生成HTML文档 314
10.4.4 创建表单 320
第十一章 使用Perl来操作MySQL数据库 330
11.1 引言 330
11.2 DBI-通用数据库接口模块 332
11.2.1 概论 332
11.2.2 DBI类 335
11.2.3 DBI数据库对象 340
11.2.4 DBI语句对象 347
11.3 MySQL数据库驱动模块 351
11.3.1 概论 351
11.3.2 MySQL数据库句柄的方法 353
11.3.3 MySQL语句句柄对象 354
11.3.4 用Perl操作MySQL数据库的一个例子 355
第十二章 数据库检索系统Genquery 357
12.1 引言 357
12.1.1 系统功能 357
12.1.2 系统调用方法 358
12.2 Genquery的公共函数 358
12.2.1 打开数据库连接 358
12.2.2 打开游标 359
12.2.3 提取数据 359
12.2.4 执行语句 359
12.2.5 关闭游标 359
12.2.6 关闭数据库连接 359
12.2.7 生成Insert语句 360
12.2.8 生成Update语句 361
12.2.9 生成Where语句 361
12.2.10 生成HTML表格 362
12.2.11 生成打印输出 364
12.2.12 生成表单 364
12.2.13 其他函数 367
12.3 表单输出 368
12.3.1 查询表单 368
12.3.2 显示表单 369
12.3.3 添加表单 369
12.3.4 更新表单 371
12.3.5 删除表单 372
第十三章 Perl编程实例 374
13.1 引言 374
13.2 表格处理器 374
13.3 动态创建图像 377
13.3.1 创建图像 377
13.3.2 颜色控制 378
13.3.3 画图命令 379
13.3.4 动态生成图像实例 380
13.4 页面计数器 382
13.4.1 记录(log)文件 383
13.4.2 创建自己的计数器 384
13.5 用户管理 387
13.5.1 用户注册 387
13.5.2 用户验证 390
13.5.3 用户删除 391
13.6 邮件列表 392
13.6.1 加入邮件列表 392
13.6.2 删除邮件列表 393
13.6.3 发送邮件 394
13.6.4 几个常用函数 395
13.7 构筑电子商务数据库系统 397
13.7.1 电子商务应用的三种类型 397
13.7.2 电子商务应用 397
13.7.3 电子商务系统实例 398
第十四章 Perl高级编程实例 409
14.1 Socket编程 409
14.1.1 SMTP协议编程实例 410
14.1.2 POP3协议编程实例 413
14.2 ODBC编程 416
14.2.1 ODBC编程简介 416
14.2.2 Perl通过ODBC开发数据库应用实例 418
14.2.3 查询及返回结果(se.pl) 418
14.3 网页文件上传 419
14.4 进程间通信 422
14.4.1 信号 422
14.4.2 命名管道 424
14.4.3 Socket 426
附录A Perl函数库及其说明 429
附录B MySQL函数库及其说明 464