1.1标量数据类型 1
第1章 Perl基础 1
1.2数组 2
1.3相关数组 5
1.4访问 8
1.5常规表达式 14
1.6数值和字符串操作符 20
1.7控制语句 24
1.8子程序、包和模块 29
1.9变量定位 34
1.10特殊变量 35
1.11 CGI 38
2.1如何在UNIX环境下将Perl程序变成可执行文件 40
第2章 创建Perl和CGI程序 40
2.2在DOS环境下将Perl程序变成可执行文件 42
2.3将Perl程序变成DOS命令 45
2.4在UNIX环镜下安装CGI程序 48
2.5在Windows NT环境下安装CGI程序 51
2.6在Windows 3.1环境下安装CGI程序 53
2.7如何完成统一的命令行解析 54
2.8处理复杂的命令行 58
第3章 文件操作 61
3.1检查文件是否存在 61
3.2从文件中读取数据 63
3.3向文件中写入数据 66
3.4向已建文件中加入数据 69
3.5删除文件 71
3.6查看文件的操作权限 73
3.7改变文件的操作权限 76
3.8获取文件的基本名(basename) 78
3.9获取文件的目录名(dirname) 79
3.10列出目录下的所有文件 81
3.11查看目录树的内容 83
3.12创建目录树 86
3.13删除目录树 87
3.14用一个通用扩展名给一组文件改名 89
3.15随机获取文件 91
3.16无缓冲输出 94
3.17一个本地句柄 96
3.18将文件句柄传递给函数 100
4.1选择输出类型 104
第4章 标准CGI输出 104
4.2初始化CGI程序的输出 106
4.3输出本地文件访问 109
4.4输出一个完整的文档URL 112
4.5输出一个本地文件 116
4.6输出动态创建的HTML 119
第5章 环境变量和命令 126
5.1读取和设置环境变量 126
5.2获得客户发出的CGI请求信息 128
5.3获得服务器发出的CGI请求信息 130
5.4获得当前的CGI请求 132
5.5确定命令是否在的PATH中 136
5.6从另一程序中读取输入 141
5.7将输出发送给其他程序 144
第6章 高级控制结构 146
6.1遍历一个列表 146
6.2循环使用一个相关数组 148
6.3退出循环 151
6.4跳到下一循环(iteration) 153
6.5使用多重循环(iterators) 156
6.6使用switch表达式 160
第7章 用户输入 165
7.1从键盘读入一行数据 166
7.2从键盘读入单个字符 167
7.3读入口令但不回显 172
7.4转换混合输入 175
7.5为CGI的GET请求读入数据 177
7.6为CGI的POST请求读入数据 182
7.7从请求表中读取数据 187
7.8对请求表中的数据解码 193
7.9存储请求表中的数据 198
7.10从命令行读取传递给程序的数据 203
7.11同时支持GET和POST请求类型 205
7.12如何解释同一关键字的多个值 211
第8章 匹配、过滤和格式变换 219
8.1在一组文件中代替一个字符串 219
8.2匹配带有“/”的路径名称 221
8.3找到符合部分一般表达的参考数据 222
8.4匹配多行方式 224
8.5改组重排文件 225
8.6将DOS文本文件转换成UNIX文本文件 226
8.7修改字符串的内容 227
8.8文件名的扩展代字符“~” 229
8.9用标准时间格式打印当前时间 231
第9章 用Perl生成报表 234
9.1如何在报表中把字段对齐 234
9.2如何把长的字段放在多行上输出 237
9.3如何给报表添加标题 239
9.4如何把变量内容放在报表的顶端 242
9.5如何在报表中添加页脚 244
9.6如何在多个报表输出格式之间切换 248
第10章 动态输出时HTML文件的操作 252
10.1如何在语法检查时分解HTML成为标识和主体部分 252
10.2如何对表设置action或request方法 264
10.3如何找到输入项并且决定它们的类型 269
10.4如何改变正文的值或者大小、把正文隐藏以及改变口令输入项 274
10.5如何管理复选按钮的状态 279
10.6如何管理单选按钮的状态 285
10.7如何改变值或者中文区域的大小 290
10.8如何管理选择列表中的可选项 294
10.9如何对定制HTML命令提供支持 302
10.10如何把使用当前格式处理的数据插入到一个已经存在的HTML文件中 305
10.11如何把一个超文本链接插入到已经存在的HTML文件中 309
10.12如何把一个选择列表插入到HTML文件中 312
10.13如何把提交按钮插入到HTML文件中 316
第11章 DBM文件 320
11.1使用Perl创建DBM文件 320
11.2显示某个DBM的内容 323
11.3修改DBM文件中的记录 327
11.4删除DBM文件中的记录 331
11.5清空一个DBM文件 335
11.6合并两个DBM文件 337
11.7如何在CGI程序中存取DBM文件 341
第12章 程序自动化、CGI、测试和保密 349
12.1如何做:自动ftp 349
12.2如何自动地注册到某个远程的计算机 355
12.3如何测试CGI程序而不用浏览器和服务器 362
12.4如何使用Web服务器而不是浏览器来测试CGI程序 364
12.5如何使用Web服务器和浏览器来测试CGI程序 365
12.6如何测试和诊断CGI程序 367
12.7如何避免常见的CGI程序设计错误 368
12.8如何避免常见的安全隐患 370
第13章 进程间通信 375
13.1用Perl程序创建子进程 375
13.2用管道给执行进程发送数据 378
13.3创建监护进程 382
13.4用相同输入执行不同CGI程序 385
13.5用不同输入执行不同CGI程序 389
13.6用Perl程序发送E-mail 394
第14章 客户机-服务器和网络程序设计 402
14.1创建Internet Domain Socket 402
14.2创建基于TCP的client程序 406
14.3创建基于UDP的client程序 409
14.4创建并发非死锁client程序 411
14.5创建server socket 415
14.6创建基于socket的网络Server程序 418
14.7用CGI程序直接给client发送HTTP 424
第15章 函数、库、软件包、模块 430
15.1通过引用传递变量 430
15.2将多个数组传递给一个函数 435
15.3从函数返回多个变量 438
15.4创建和使用软件包 443
15.5创建和使用库 448
15.6创建和使用模块 451
15.7创建POD文件 455
15.8将CGI库转化为模块 459
第16章 处理异步事件 468
16.1处理Perl中的信号 468
16.2利用信号与运行进程通信 471
16.3让进程等待一个事件 473
16.4创建超时进程 475
16.5调度基于时间的事件 477
16.6巧妙处理异常 482
第17章 数据结构 485
17.1创建二叉树 485
17.2处理嵌套表 491
17.3创建多叉树 501
第18章 排序、查寻和修改 509
18.1给数组排序 509
18.2使排序后的数组元素唯一 512
18.3对非量化数据类型排序 514
18.4在数组中查找一个元素 516
18.5确定数组中是否存在相同元素 518
18.6将相关数组按值排序 519
18.7创建递归子程序 521
第19章 特殊文件处理 524
19.1处理非文本化编码文件 524
19.2处理压缩文件 527
19.3文件加密 529
19.4从二进制文件析取文本文件 530
19.5处理以太网信息包 532
19.6利用Perl由日志产生统计表 542
19.7利用Perl为Web站点创建主页 550
第20章 UNIX系统管理 557
20.1读取口令文件 557
20.2不利用口令发现所有用户 560
20.3列出用户所属的所有工作组 562
20.4产生随机口令 564
20.5测试UNIX口令 566
20.6检查用户所有权和权限 567
20.7确定何时文件系统将溢出 572
20.8确定文件比给定年龄大或小 574
20.9确定文件比给定大小大或小 578
20.10比较两棵目录树 581
20.11用NCSA服务器对用户进行安全验证 584
第21章 性能 588
21.1如何完成记录执行日志 588
21.2编译时捕捉潜在的错误 591
21.3编写可移植的Perl程序 593
21.4剖析Perl代码 595
21.5优化Perl和CGI代码 598
22.1使用Perl调试器 602
第22章 Perl调试工具 602
22.2调试包含子程序的Perl scripts 608
22.3在Perl scipt中设置和取消断点 610
22.4用普通命令别名设置调试器 612
22.5用调试器交互地执行Perl命令 613
第23章 面向对象的程序设计 615
23.1产生一个类 615
23.2产生一个对象 619
23.3从类继承 623
23.4重载父类方法 628
23.5产生类变量 631
23.6直接调用类方法 642
23.7安装使用在Web上发现的Perl 5 CGI模块 646
24.1使用Perl script h2xs 647
第24章 扩充Perl 5 647
24.2让Perl理解数据类型 651
24.3把一个引用变成char** 656
24.4扩充Perl使之包含函数 660
24.5从一个函数返回多个值 666
24.6让Perl变量取消已分配的变量 672
24.7在XSUB程序中设定缺省的参数值 676
24.8产生变长参数列表 684
24.9在Perl中产生回调函数 690
24.10把扩充编译到Perl中 697
附录A Perl和CGI的Internet资源 701
附录B CGI环境变量 705
附录C HTML制表元素 707