第1章 实用摘要和报表语言
1.1 什么是Perl
1.2 Perl用户
1.3 Perl的版本
1.4 如何获得Perl
1.5 什么是CPAN
1.6 Perl文档
第2章 Perl脚本
2.1 从命令行使用Perl
2.1.1 -e开关
2.1.2 -n开关
2.1.3 -C开关
2.2 脚本设置
2.3 脚本
2.3.1 开始
2.3.2 注释
2.3.3 Perl语句
2.3.4 执行脚本
2.3.5 脚本范例(UNIX,Windows)
练习1 了解Perl的语法
第3章 获得打印句柄
3.1 文件句柄
3.2 字
3.2.1 引号
3.2.2 实量(常量)
3.3 print函数
3.3.1 打印实量
3.3.2 警告编译指示和-w开关
3.3.3 strict编译指示和字
3.4 printf函数
3.4.1 sprintf函数
3.4.2 无引号打印:here document
练习2 编写literals脚本
第4章 变量
4.1 关于Perl变量
4.1.1 类型
4.1.2 作用域和包
4.1.3 命名规范
4.1.4 赋值语句
4.1.5 引号规则
4.2 标量、数组和散列
4.2.1 标量变量
4.2.2 数组
4.2.3 散列
4.3 从STDIN读取
4.3.1 把输入赋值给标量变量
4.3.2 chop和chomp函数
4.3.3 read函数
4.3.4 getc函数
4.3.5 将输入赋值给数组
4.3.6 将输入赋值给散列
4.4 数组函数
4.4.1 chop和chomp函数(用于列表)
4.4.2 exists函数
4.4.3 delete函数
4.4.4 grep函数
4.4.5 join函数
4.4.6 map函数
4.4.7 pack和unpack函数
4.4.8 pop函数
4.4.9 push函数
4.4.10 shift函数
4.4.11 splice函数
4.4.12 split函数
4.4.13 sort函数
4.4.14 reverse函数
4.4.15 unshift函数
4.5 散列(关联数组)函数
4.5.1 keys函数
4.5.2 values函数
4.5.3 each函数
4.5.4 delete函数
4.5.5 exists函数
4.6 关于散列的更多内容
4.6.1 从文件加载散列
4.6.2 特殊散列
4.6.3 语境
练习3 特殊字符
第5章 运算符
5.1 关于Perl运算符
5.2 混合数据类型
5.3 优先权与结合性
5.3.1 赋值运算符
5.3.2 关系运算符
5.3.3 等值运算符
5.3.4 逻辑运算符(短路运算符)
5.3.5 逻辑字运算符
5.3.6 算术运算符
5.3.7 自动递增和自动递减运算符
5.3.8 位逻辑运算符
5.3.9 条件运算符
5.3.10 范围运算符
5.3.11 特殊字符串运算符和函数
5.3.12 生成随机数
5.3.13 rand/srand函数
练习4 运算符
第6章 条件
6.1 控制结构,块和复合语句
6.2 决策——条件结构
6.2.1 if和unless语句
6.2.2 unless语句结构
6.3 循环
6.3.1 while循环
6.3.2 until循环
6.3.3 for循环
6.3.4 foreach循环
6.3.5 循环控制
6.3.6 伪开关语句
练习5 条件是什么
第7章 正则表达式——模式匹配
7.1 什么是正则表达式
7.2 表达式修饰符和简单语句
7.2.1 条件修饰符
7.2.2 DATA文件句柄
7.2.3 循环修饰符
7.3 正则表达式运算符
7.3.1 m运算符和匹配
7.3.2 s运算符和替换
7.3.3 模式绑定运算符
练习6 它是sed、awk或grep吗?尝试Perl
第8章 获得控制:正则表达式无字符
8.1 正则表达式无字符
8.1.1 用于单字符的元字符
8.1.2 白空元字符
8.1.3 重复模式匹配的元字符
8.1.4 tr或y函数
8.2 统一字符编码(Unicode)
练习7 是sed、awk或grep吗?给出Perl的另外一个作用
第9章 获得文件句柄
9.1 用户定义文件句柄
9.1.1 打开文件:open函数
9.1.2 打开文件读
9.1.3 打开文件写
9.1.4 Win32文件
9.1.5 打开文件添加
9.1.6 select函数
9.1.7 使用flock锁住文件
9.1.8 seek和tell函数
9.1.9 打开文件读写
9.1.10 管道打开
9.2 传送参数
9.2.1 ARGV数组
9.2.2 ARGV和Null文件句柄
9.2.3 eof函数
9.2.4 -i开关:原位编辑文件
9.3 文件测试
练习8 获得文件句柄
第10章 子程序和函数
10.1 子程序/函数
10.1.1 定义和调用子程序
10.1.2 传送参数
10.1.3 原型
10.1.4 返回值
10.1.5 通过引用调用——别名和Typeglobs
10.1.6 通过指针传送
10.1.7 自动加载
10.1.8 BEGIN和END子程序(开始和结束)
10.1.9 subs函数
练习9 子程序不可缺少
第11章 模块化、打包并发送到库
11.1 包和模块
11.1.1 类比
11.1.2 定义
11.1.3 符号表
11.2 标准Perl库
11.2.1 @INC数组
11.2.2 包和.pl文件
11.2.3 模块和.pm文件
11.2.4 来自CPAN的模块
练习10 将所有的Perl都放入包中
练习11 压缩并放入库中
第12章 这个工作要求引用吗
12.1 什么是引用
12.1.1 符号引用与硬引用
12.1.2 硬引用
12.1.3 引用和匿名变量
12.1.4 嵌套数据结构
12.1.5 引用和于程序
12.1.6 文件句柄引用
12.1.7 ref函数
练习12 指向地址
第13章 面向对象的Perl
13.1 OOP范型
13.1.1 回顾包和模块
13.1.2 一些面向对象的专用术语
13.2 类、对象和方法
13.2.1 类和专用性
13.2.2 对象
13.2.3 bless函数
13.2.4 方法
13.2.5 多态性和动态绑定
13.2.6 析构函数和无用存储单元收集
13.3 继承
13.3.1 @ISA数组和调用方法
13.3.2 $AUTOLOAD,sub AUTOLOAD和UNIVERSAL
13.3.3 派生类
13.3.4 多重继承
13.3.5 面向对象术语——父方法
13.4 公共用户接口:文档编制类
13.4.1 pod文件
13.4.2 pod命令
13.4.3 如何使用pod解释程序
13.4.4 将pod文档翻译成文本
13.4.5 将pod文档翻译成HTML
13.5 使用Perl库中的对象
13.5.1 再看标准Perl库
13.5.2 标准Perl库中面向对象的模块
13.5.3 使用标准Perl库中的模块
练习13 这一课的对象是什么
练习14 函数Pod中的Perl
第14章 tie函数,DBM文件和数据库挂钩
14.1 连接变量与类
14.1.1 tie函数
14.1.2 预定义方法
14.1.3 连接标量
14.1.4 连接数组
14.1.5 连接散列
14.2 DBM文件
14.2.1 创建并赋给DBM文件数据
14.2.2 从DBM文件检索数据
14.2.3 从DBM文件中删除项
第15章 Perl数据库编程
15.1 本章概述
15.2 Perl数据库编程
15.3 使用RDBMS的Perl编程
15.3.1 在Windows系统上安装Perl
15.3.2 使用PPM在Windows系统上安装Perl模块
15.3.3 安装RDBMS
15.3.4 为MMS范例创建DSN
15.4 使用ADO和DBI访问MSS
15.4.1 Microsoft SQL Server——范例15-1和15-3的查询
15.4.2 范例15-1:ex1.pl在MS SQL Server上的ADO简单查询,DSN
15.4.3 执行DDL和DML操作
15.4.4 范例15-2:ex2.pl MSS上persons.sql的Perl ADO,无DSN
15.4.5 范例15-3:ex3.pl MS SQL Server上的Perl DBI范例
15.4.6 范例15-4:ex4.pl MSS上persons.sql的Perl DBI
15.5 使用ADO和DBI访问Oracle
15.5.1 Oracle——范例15-5(ADO)和15-7(DBI)的简单查询
15.5.2 为Oracle范例创建DSN
15.5.3 范例15-5:ex5.pl Oracle上的ADO简单查询,DSN
15.5.4 在Oracle上执行DDL和DML操作
15.5.5 范例15-6:ex6.pl Oracle上persons.sql的Perl ADO,无DSN
15.5.6 范例15-7:ex7.pl Oracle上的Perl DBI简单查询
15.5.7 范例15-8:ex8.pl Oracle上persons.sql的Perl DBI
15.6 练习:非编程
练习15 使用MSS
练习16 在MSS中执行persons.pl
练习17 使用Oracle
练习18 在Oracle中执行persons.pl
15.7 参考文献
第16章 与系统接口
16.1 系统调用
16.1.1 目录和文件
16.1.2 目录和文件属性
16.1.3 查找目录和文件
16.1.4 创建目录——mkdir函数
16.1.5 删除目录——rmdir函数
16.1.6 更改目录——chdir函数
16.1.7 通过目录文件句柄访问目录
16.1.8 许可和所有权
16.1.9 硬和软链接
16.1.10 更改文件名
16.1.11 更改访问和修改时间
16.1.12 文件统计量
16.1.13 低级文件I/O
16.1.14 压缩和解压缩数据
16.2 进程
16.2.1 UNIX进程
16.2.2 Win32进程
16.2.3 环境(UNIX和Windows)
16.2.4 进程和文件句柄
16.2.5 进程优先权和Nice
16.2.6 口令信息
16.2.7 时间和进程
16.2.8 UNIX进程创建
16.2.9 Win32进程创建
16.3 其他与操作系统接口的途径
16.3.1 syscall函数和h2hp脚本
16.3.2 命令替换——备份引号
16.3.3 Shell.pm模块(Perl)
16.3.4 system函数
16.3.5 here documents
16.3.6 Globbing(文件名扩展和通配符)
16.4 错误处理
16.4.1 die函数
16.4.2 warn函数
16.4.3 eval函数
16.5 信号
第17章 报告编写示例
17.1 模板
17.1.1 定义模板步骤
17.1.2 改变文件句柄
17.1.3 页眉格式
17.1.4 select函数
17.1.5 多行字段
17.1.6 填充字段
第18章 网上发送
18.1 网络与Perl
18.2 客户机/服务器模式
18.3 网络协议(TCP/IP)
18.3.1 以太网协议(硬件)
18.3.2 Internet协议(IP)
18.3.3 传输控制协议(TCP)
18.3.4 用户数据报协议(UDP)
18.4 网络地址
18.4.1 pack和unpack函数
18.4.2 Ethernet地址
18.4.3 IP地址
18.4.4 端口号
18.4.5 Perl协议函数
18.4.6 Perl的服务器函数
18.4.7 Perl主机信息函数
18.5 套接字
18.5.1 套接字类型
18.5.2 套接字域
18.5.3 创建套接字
18.5.4 绑定地址和套接字名
18.5.5 创建套接字队列
18.5.6 等待客户机请求
18.5.7 建立套接字连接
18.5.8 关闭套接字
18.6 客户机/服务器程序
18.6.1 同一机器上面向连接的套接字
18.6.2 远程机器(Internet客户机和服务器)上面向连接的套接字
18.7 Socket.pm模块
第19章 CGI与Perl
19.1 什么是CGI
19.2 客户机和服务器之间的Internet通信
19.2.1 HTTP服务器
19.2.2 HTTP状态代码和Log文件
19.2.3 URL(统一资源定位符)
19.3 使用HTML创建Web页面
19.4 HTML与CGI如何协作
19.5 日志文件
19.6 在哪里找CGI程序
19.7 信息进出CGI脚本
19.8 使用CGI处理表单
19.8.1 表单输入类型
19.8.2 创建HTML表单
19.8.3 GET方法
19.8.4 处理表单
19.8.5 总结
19.8.6 处理电子邮件
19.8.7 附加路径信息
19.8.8 服务器端包含
19.9 CGI.pm模块
19.9.1 引言
19.9.2 优点
19.9.3 使用CGI.pm编程的两种形式
19.9.4 如何处理表单的输入
19.9.5 CGI.pm表单元素
19.9.6 HTTP头方法
练习19 为Perl冲浪
练习20 使用CGI.pm
附录A Perl固有函数、编译指示、模块和调试器
A.1 Perl函数
A.2 特殊变量
A.3 Perl编译指示
A.4 Perl模块
A.5 命令行开关
A.6 调试器
附录B 有用的Perl脚本
B.1 Mark Houser的taintperl脚本
B.2 John J.Nouveaux的maxpstat
B.3 John J.Nouveaux的随机程序
附录C 面向对象的Perl/CGI程序
附录D HTML文档:基础介绍
D.1 引言
D.2 什么是HTML
D.3 HTML标记
D.3.1 要求元素
D.3.2 要求元素及其标记的顺序
D.3.3 元素:它们是什么和如何使用
D.4 最小的HTML文档
D.4.1 标题
D.4.2 文本分隔标记
D.4.3 列表
D.4.4 能带来娱乐性和便利性的表
D.5 字符格式
D.5.1 逻辑标记
D.5.2 物理标记
D.6 链接
D.6.1 创建链接
D.6.2 链接到URL(统一资源定位符)
D.7 添加注释
D.8 大小写相关性
D.9 图形和图像
D.9.1 创建内嵌图像
D.9.2 复杂标记
D.9.3 调整和放置图像
D.9.4 创建图像的文本替换
D.9.5 在何处找图像
D.9.6 背景图像
D.9.7 创建背景
D.9.8 默认颜色
D.9.9 条,项目符号和图标
D.9.10 图像更新
D.9.11 外部配有声音的图像
D.10 疑难解答
D.10.1 询问Heloise
D.10.2 一些在HTML方面有帮助的站点
D.11 元标记,层叠样式表和Java
D.11.1 元标记例子(第一部分)
D.11.2 元标记例子(第二部分)
D.11.3 元标记例子(第三部分)
D.11.4 样式表例子
D.11.5 JavaScript例子
D.12 看一看幕后(或在右击之前做什么)
D.13 关于框架
D.14 最后的一些考虑