第1章 实用摘要和报表语言 1
1.1什么是Perl 1
1.2什么是解释语言 2
1.3 Perl的用户 2
Perl的版本 3
什么是Perl 6 3
1.4如何获得Perl 4
1.5什么是CPAN 7
1.6 Perl文档 8
Perl的man页面 8
HTML文档 9
1.7读者应当学到的知识 9
1.8下章简介 10
第2章 Perl快速入门 11
2.1快速入门和速查手册 11
给程序员的提示 11
给非程序员的提示 11
Perl语法和结构 11
2.2本章小结 23
2.3下章简介 23
第3章 Perl脚本 24
3.1创建脚本 24
3.2脚本 25
启动 25
选择文本编辑器 26
为Perl脚本取名 26
语句、空白和换行 27
注释 27
Perl语句 28
使用Perl内建函数 28
执行脚本 28
脚本实例 29
可能出现的错误 30
3.3从命令行使用Perl 31
-e开关 31
-n开关 31
-c开关 33
3.4读者应当学到的知识 33
3.5下章简介 34
第4章 获得打印句柄 35
4.1文件句柄 35
4.2字(Word) 35
4.3 print函数 35
引号 36
实量(常量) 38
打印实量 40
warning编译指示符和-w开关 42
diagnostics编译指示符 44
strict编译指示符 44
4.4 printf函数 45
sprintf函数 48
无引号打印:here文档 48
4.5读者应当学到的知识 51
4.6下章简介 51
第5章 变量 53
5.1 Perl变量简介 53
类型 53
作用域和包 53
命名规范 54
赋值语句 54
引号规范 55
5.2标量、数组和散列 59
标量型变量 59
数组 61
散列 67
复杂数据结构 70
5.3从STDIN读取输入 72
把输入内容赋值给标量型变量 72
chop与chomp函数 73
read函数 74
getc函数 75
将输入内容赋予数组 75
将输入内容赋予散列 76
5.4数组函数 77
chop和chomp函数(用于列表) 77
exists函数 78
delete函数 78
grep函数 78
join函数 79
map函数 80
pack和unpack函数 81
pop函数 82
push函数 83
shift函数 83
splice函数 84
split函数 85
sort函数 88
reverse函数 90
unshift函数 91
5.5散列(关联数组)函数 91
keys函数 91
values函数 92
each函数 93
对散列进行排序 93
delete函数 98
exists函数 99
5.6有关散列的更多内容 99
从文件载入散列 99
特殊散列变量 100
上下文(Context) 102
5.7读者应当学到的知识 103
5.8下章简介 104
第6章 运算符 106
6.1关于Perl运算符 106
6.2混合数据类型 106
6.3优先级和结合性 108
赋值运算符 109
关系运算符 111
相等性运算符 113
逻辑运算符(短路运算符) 115
逻辑字运算符 117
算术运算符 118
自动递增与自动递减运算符 119
位逻辑运算符 121
条件运算符 123
范围运算符 125
特殊字符串运算符和函数 125
算术函数 127
6.4读者应当学到的知识 130
6.5下章简介 131
第7章 条件 133
7.1控制结构、块与复合语句 133
7.2循环 138
while循环 138
until循环 139
for循环 141
foreach循环 143
循环控制 146
switch语句 152
7.3读者应当学到的知识 155
7.4下章简介 155
第8章 正则表达式——模式匹配 156
8.1什么是正则表达式 156
8.2表达式修饰符与简单语句 156
条件修饰符 157
DATA文件句柄 158
循环修饰符 160
8.3正则表达式运算符 161
m运算符与匹配 162
s运算符与替换 167
模式绑定运算符 174
8.4读者应当学到的知识 179
8.5下章简介 179
第9章 正则表达式元字符 181
9.1正则表达式元字符 181
表示单个字符的元字符 183
空白元字符 190
重复模式匹配元字符 192
tr或y函数 213
9.2 Unicode 216
9.3读者应当学到的知识 218
9.4下章简介 218
第10章 获得文件句柄 220
10.1用户定义文件句柄 220
打开文件:open函数 220
打开文件读取 220
打开文件写入 224
Win32二进制文件 225
打开文件追加 226
select函数 227
使用flock为文件加锁 228
seek和tell函数 229
打开文件读写 233
打开管道 234
10.2参数传递 239
ARGV数组 239
ARGV与Null文件句柄 241
eof函数 243
-i开关:原位编辑文件 245
10.3文件测试 246
10.4读者应当学到的知识 248
10.5下章简介 249
第11章 子例程与函数 250
11.1子例程/函数 250
11.2参数传递 254
原型 260
返回值 262
上下文和子例程 263
11.3按引用调用 265
符号引用-typeglob 265
硬引用-指针 269
自动加载 273
BEGIN和END子例程(开始与结束) 275
subs函数 275
11.4读者应当学到的知识 276
11.5下章简介 276
第12章 模块化、打包并发送到库 278
12.1包和模块 278
引言 278
一个类比 278
定义 278
符号表 279
12.2标准Perl库 284
@INC数组 284
包和.Pl文件 286
模块和.pm文件 290
导出和导入 290
如何“use”来自标准Perl库的模块 295
使用Perl创建自己的模块 298
12.3来自C PAN的模块 299
12.4读者应当学到的知识 305
12.5下章简介 306
第13章 这项工作需要引用吗 308
13.1什么是引用,什么是指针 308
符号引用和硬引用 308
硬引用,指针 310
引用和匿名变量 312
嵌套数据结构 313
引用和子例程 318
文件句柄引用 320
ref函数 321
13.2读者应当学到的知识 323
13.3下章简介 323
第14章 面向对象的Perl 325
14.1 OOP范例 325
回顾包与模块 325
一些面向对象的专用术语 326
14.2类、对象和方法 326
现实世界 326
步骤 327
类和私有性 327
对象 328
bless函数 330
方法 331
面向对象的模块样式 332
多态性和动态绑定 341
析构函数和垃圾收集 346
14.3匿名子例程、闭包和私有性 347
什么是闭包 348
闭包和对象 349
14.4继承 353
@ISA数组和调用方法 353
$AUTOLOAD、 sub AUTOLOAD和UNIVERSAL 355
派生类 357
多重继承 362
重写父类方法 362
14.5公共用户接口:文档类 364
pod文件 364
pod命令 365
如何使用pod解释器 366
将pod文档转译为文本 367
将pod文档转译为HTML 368
14.6使用Perl库中的对象 368
另眼看标准Perl库 368
一个来自标准Perl库的面向对象模块 369
使用标准Perl库中的模块 371
14.7读者应当学到的内容 372
14.8下章简介 373
第15章 神奇的Tie和DBS 377
15.1连接变量与类 377
tie函数 377
预定义方法 378
连接标量 378
连接数组 380
连接散列 382
15.2 DBM文件 386
创建并赋值DBM文件 387
从DBM文件中检索数据 389
从DBM文件删除项 390
15.3读者应当学到的知识 392
15.4下章简介 392
第16章 CGI和Perl:超级活力双雄 393
16.1静态和动态Web页面 393
16.2工作原理 395
16.3使用HTML创建Web页面 399
16.4 HTML和CGI如何协作 403
简单CGI脚本 403
错误日志文件 405
16.5控制信息出入CGI脚本 406
16.6 CGI和表单 409
表单输入类型 410
创建HTML表单 410
GET方法 413
处理编码数据 416
总结 418
POST方法 421
处理电子邮件 424
16.7 CGI.pm模块 427
简介 427
优点 428
使用CGI.pm编程的两种形式 428
重要警示 430
HTML表单方法 431
CGI.pm如何处理表单 436
CGI.pm表单元素 441
生成表单输入字段的方法 442
错误处理 453
HTTP首部方法 455
第17章 当Perl遇见MySQL:完美的连接 460
17.1简介 460
17.2什么是关系型数据库 460
客户端/服务器型数据库 461
关系型数据库的组成部分 462
通过SQL(结构化查询语言)访问数据库 466
17.3 MySQL入门 468
为何选用MySQL 468
安装MySQL 468
连接MySQL 468
图形化用户界面 470
寻找数据库 472
基本命令入门 474
17.4什么是Perl DBI 487
安装DBI 488
DBI类方法 493
如何使用DBI 495
连接和断开数据库 495
disconnect()方法 497
准备语句句柄并获取结果 497
处理引号 500
获取错误消息 501
17.5不返回数据的语句 509
17.6事务 513
17.7使用CGI和DBI选择并显示记录项 515
17.8还有哪些内容 518
17.9读者应当学到的知识 519
17.10下章简介 520
第18章 与系统交互 523
18.1系统调用 523
目录和文件 524
目录和文件属性 526
查找目录和文件 528
创建目录——mkdir函数 530
删除目录——rmdir函数 531
更改目录——chdir函数 532
通过目录文件句柄访问目录 533
权限和所有权 535
硬链接和软链接 538
更改文件名 541
更改访问与修改时间 541
文件统计量 542
底层I/O文件 544
压缩和解压缩数据 546
18.2进程 550
UNIX进程 551
Win32进程 552
环境(UNIX和Windows) 552
进程和文件句柄 554
进程优先级和Nice值 556
口令信息 557
时间和进程 561
UNIX进程创建 564
Win32进程创建 568
18.3与操作系统交互的其他途径 570
syscall函数和h2ph脚本 571
命令替换——反引号 572
Shell.pm模块 572
system函数 573
here文档 575
Globbing(文件名扩展和通配符) 575
18.4错误处理 577
die函数 577
warn函数 578
eval函数 578
18.5信号 581
18.6读者应当学到的知识 584
18.7下章简介 585
第19章 借助形象行编写报表 586
19.1模板 586
定义模板的步骤 586
更改文件句柄 588
页眉格式 589
select函数 593
多行字段 595
填充字段 595
动态报表编写 597
19.2读者应当学到的知识 598
19.3下章简介 599
第20章 通过网络发送 600
20.1网络与Perl 600
20.2客户端/服务器模型 600
20.3网络协议(TCP/IP) 600
以太网协议(硬件) 600
Internet协议(IP) 601
传输控制协议(TCP) 601
用户数据报协议(UDP) 601
20.4网络寻址 601
以太网地址 601
IP地址 602
端口号 602
Perl协议函数 602
Perl的服务器函数 603
Perl的主机信息函数 605
20.5套接字 607
套接字的类型 607
套接字域 607
创建套接字 608
绑定地址和套接字名 609
创建套接字队列 609
等待客户端请求 609
建立套接字连接 610
关闭套接字 610
20.6客户端/服务器程序 611
同一台计算机上面向连接的套接字 611
远程计算机(Internet客户端和服务器)上面向连接的套接字 614
20.7 Socket.pm模块 617
20.8读者应当学到的知识 621
附录A Perl内建函数、编译指示、模块和调试器 622
附录B SQL语言入门 654
附录C Perl和生物学 692
附录D 强悍与速度:CGI和mod_Perl 699