目录译者序前言第一部分Perl基础第1学时Perl入门 31.1安装Perl 31.1.1等一等,也许你已经安装了Perl 41.1.2在Windows95/98/NT上安装Perl 51.1.3在UNIX上安装Perl 61.1.4在Macintosh系统上安装Perl 71.2文档资料 71.2.1某些特殊的文档资料举例 81.2.2如果无法找到文档该怎么办 91.3编写你的第一个Perl程序 91.3.1键入程序 91.3.2运行程序 91.3.3程序正确将会发生什么情况 101.3.4Perl程序的具体运行过程 101.3.5必须知道的一些情况 111.4课时小结 121.5课外作业 121.5.1专家答疑 121.5.2思考题 121.5.3解答 131.5.4实习 13第2学时Perl的基本构件:数字和字符串 142.1直接量 142.1.1数字 142.1.2字符串 152.2标量变量 162.3表达式和运算符 182.3.1基本运算符 182.3.2数字运算符 192.3.3字符串运算符 192.4其他运算符 202.4.1单参数运算符 202.4.2递增和递减 212.4.3尖括号运算符 212.4.4其他赋值运算符 222.4.5关于字符串和数字的一些说明 222.5练习:利息计算程序 232.6课时小结 242.7课外作业 242.7.1专家答疑 242.7.2思考题 242.7.3解答 252.7.4实习 25第3学时控制程序流 263.1语句块 263.2if语句 273.2.1其他关系运算符 283.2.2“真”对于Perl意味着什么 293.2.3逻辑运算符 303.3循环 323.3.1用while进行循环 323.3.2使用for循环 333.4其他流控制工具 333.4.1奇特的执行顺序 333.4.2明细控制 343.4.3标号 353.4.4退出Perl 353.5练习:查找质数 353.6课时小结 373.7课外作业 373.7.1专家答疑 373.7.2思考题 373.7.3解答 383.7.4实习 38第4学时基本构件的堆栈:列表与数组 394.1将数据放入列表和数组 394.2从数组中取出元素 414.2.1寻找结尾 424.2.2关于上下文的详细说明 434.2.3回顾以前的几个功能 444.3对数组进行操作 454.3.1遍历数组 464.3.2在数组与标量之间进行转换 464.3.3给数组重新排序 484.4练习:做一个小游戏 494.5课时小结 514.6课外作业 514.6.1专家答疑 514.6.2思考题 514.6.3解答 524.6.4实习 52第5学时进行文件操作 535.1打开文件 535.1.1路径名 545.1.2出色的防错措施 555.1.3以适当的方式运行die函数 565.2读取文件 565.3写入文件 585.4自由文件.测试文件和二进制数据 605.4.1自由文件句柄 605.4.2二进制文件 605.4.3文件测试运算符 615.5课时小结 625.6课外作业 625.6.1专家答疑 625.6.2思考题 635.6.3解答 635.6.4实习 63第6学时模式匹配 646.1简单的模式 646.2元字符 666.2.1一个简单的元字符 666.2.2非输出字符 666.2.3通配符 666.2.4字符类 686.2.5分组和选择 696.2.6位置通配符 696.3替换 706.4练习:清除输入数据 706.5关于模式匹配的其他问题 716.5.1对其他变量进行操作 716.5.2修饰符与多次匹配 726.5.3反向引用 736.5.4一个新函数:grep 736.6课时小结 746.7课外作业 746.7.1专家答疑 746.7.2思考题 756.7.3解答 756.7.4实习 75第7学时哈希结构 777.1将数据填入哈希结构 777.2从哈希结构中取出数据 787.3列表与哈希结构 807.4关于哈希结构的补充说明 817.4.1测试哈希结构中的关键字 817.4.2从哈希结构中删除关键字 817.5用哈希结构进行的有用操作 817.5.1确定频率分布 827.5.2在数组中寻找惟一的元素 827.5.3寻找两个数组之间的交汇部分和不同部分 837.5.4对哈希结构进行排序 847.6练习:用Perl创建一个简单的客户数据库 847.7课时小结 867.8课外作业 867.8.1专家答疑 867.8.2思考题 877.8.3解答 877.8.4实习 88第8学时函数 898.1创建和调用子例程 898.1.1返回子例程的值 908.1.2参数 918.1.3传递数组和哈希结构 918.2作用域 928.3练习:统计数字 948.4函数的脚注 968.4.1声明local变量 968.4.2使Perl变得更加严格 978.4.3递归函数 988.5课时小结 998.6课外作业 998.6.1专家答疑 998.6.2思考题 998.6.3解答 1008.6.4实习 100第二部分高级特性第9学时其他函数和运算符 1039.1搜索标量 1039.1.1用index进行搜索 1039.1.2用rindex向后搜索 1049.1.3用substr分割标量 1049.2转换而不是替换 1059.3功能更强的print函数 1069.4练习:格式化报表 1079.5堆栈形式的列表 1099.6课时小结 1109.7课外作业 1119.7.1专家答疑 1119.7.2思考题 1119.7.3解答 1129.7.4实习 112第10学时文件与目录 11310.1获得目录列表 11310.2练习:UNIX的grep 11610.3目录 11710.3.1浏览目录 11710.3.2创建和删除目录 11810.3.3删除文件 11910.3.4给文件改名 11910.4UNIX系统 12010.5你应该了解的关于文件的所有信息 12110.6练习:对整个文件改名 12210.7课时小结 12310.8课外作业 12410.8.1专家答疑 12410.8.2思考题 12410.8.3解答 12410.8.4实习 125第11学时系统之间的互操作性 12611.1system()函数 12611.2捕获输出 12811.3管道 12911.4可移植性入门 13111.5课时小结 13411.6课外作业 13411.6.1专家答疑 13411.6.2思考题 13511.6.3解答 13511.6.4实习 136第12学时使用Perl的命令行工具 13712.1什么是调试程序 13712.1.1启动调试程序 13712.1.2调试程序的基本命令 13812.1.3断点 13912.1.4其他调试程序命令 14012.2练习:查找错误 14112.3其他命令行特性 14212.3.1单命令行程序 14212.3.2其他开关 14312.3.3空的尖括号与更多的单命令行程序 14412.4课时小结 14512.5课外作业 14512.5.1专家答疑 14512.5.2思考题 14612.5.3解答 146第13学时引用与结构 14713.1引用的基本概念 14713.1.1对数组的引用 14913.1.2对哈希结构的引用 14913.1.3作为参数的引用 15013.1.4创建各种结构 15113.2结构的配置方法 15213.2.1一个例子:列表中的列表 15213.2.2其他结构 15313.2.3使用引用来调试程序 15413.3练习:另一个游戏——迷宫 15513.4课时小结 15713.5课外作业 15713.5.1专家答疑 15713.5.2思考题 15813.5.3解答 15813.5.4实习 158第14学时使用模块 15914.1模块的概述 15914.1.1读取关于模块的文档 16014.1.2什么地方可能出错 16114.2已安装模块简介 16214.2.1文件和目录简介 16214.2.2拷贝文件 16414.2.3用于通信的Perl模块 16414.2.4使用English模块 16514.2.5diagnostics模块 16514.3标准模块的完整列表 16614.4课时小结 16714.5课外作业 16714.5.1专家答疑 16714.5.2思考题 16814.5.3解答 16814.5.4实习 168第15学时了解程序的运行性能 16915.1DBM文件 16915.1.1需要了解的重点 17015.1.2遍历与DBM文件相连接的哈希结构 17015.2练习:一种自由格式备忘记事板 17115.3将文本文件用作数据库 17315.4随机访问文件 17515.4.1打开文件进行读写操作 17515.4.2在读写文件中移动 17615.5锁定文件 17615.5.1锁定UNIX和NT下的文件 17815.5.2在加锁情况下进行读写操作 17915.5.3Windows95和Windows98下的加锁问题 180 15.5.4在其他地方使用文件锁的问题 18115.6课时小结 18115.7课外作业 18115.7.1专家答疑 18115.7.2思考题 18215.7.3解答 18215.7.4实习 182第16学时Perl语言开发界 18316.1Perl究竟是一种什么语言 18316.1.1Perl的简单发展历史 18316.1.2开放源 18416.1.3Perl的开发 18516.2Perl综合存档文件网 18516.2.1什么是CPAN 18616.2.2为什么人们愿意提供自己的开发成果 18616.3下一步你要做的工作 18716.3.1要做的第一步工作 18716.3.2最有用的工具 18716.3.3查找程序中的错误 18816.3.4首先要靠自己来解决问题 18816.3.5从别人的程序错误中吸取教训 18916.3.6请求他人的帮助 19016.4其他资源 19116.5课时小结 19216.6课外作业 19216.6.1专家答疑 19216.6.2思考题 19216.6.3解答 192第三部分将Perl用于CGI第17学时CGI概述 19517.1浏览Web 19517.1.1检索一个静态Web页 19617.1.2动态Web页—使用CGI 19717.2不要跳过这一节内容 19817.3编写你的第一个CGI程序 19917.3.1在服务器上安装CGI程序 20017.3.2运行你的CGI程序 20117.4CGI程序无法运行时怎么办 20117.4.1这是你的CGI程序吗 20117.4.2服务器存在的问题 20217.4.3排除服务器内部错误或500错误 20317.5课时小结 20417.6课外作业 20417.6.1专家答疑 20417.6.2思考题 20517.6.3解答 20517.6.4实习 206第18学时基本窗体 20718.1窗体是如何运行的 20718.1.1HTML窗体元素概述 20718.1.2单击submit时出现的情况 20818.2将信息传递给你的CGI程序 20918.3Web安全性 21118.3.1建立传输明码文本的连接 21118.3.2注意不安全数据 21218.3.3从事无法执行的操作 21318.3.4拒绝服务 21318.4宾客留言簿 21418.5课时小结 21518.6课外作业 21518.6.1专家答疑 21518.6.2思考题 21618.6.3解答 21618.6.4实习 216第19学时复杂窗体 21719.1复杂的多页窗体 21719.2隐藏域 21719.3多页调查窗体 21919.4课时小结 22419.5课外作业 22419.5.1专家答疑 22419.5.2思考题 22519.5.3解答 22519.5.4实习 225第20学时对HTTP和CGI进行操作 22620.1HTTP通信概述 22620.1.1举例:人工检索Web页 22720.1.2举例:返回非文本信息 22820.2如何调用CGI程序的详细说明 23020.2.1将参数传递给CGI程序 23020.2.2特殊参数 23120.3服务器端的包含程序 23220.4部分环境函数简介 23420.5重定向 23520.6课时小结 23720.7课外作业 23720.7.1专家答疑 23720.7.2思考题 23720.7.3解答 23820.7.4实习 238第21学时cookie 23921.1什么是cookie 23921.1.1如何创建cookie 24021.1.2举例:使用cookie 24121.1.3另一个例子:cookie查看器 24221.2高级cookie特性 24321.2.1设置cookie终止运行的时间 24321.2.2cookie的局限性 24421.2.3将cookie发送到其他地方 24421.2.4限制cookie返回到的位置 24621.2.5带有安全性的cookie 24721.3cookie存在的问题 24721.3.1cookie的生存期很短 24721.3.2并非所有浏览器都支持cookie 24721.3.3有些人不喜欢cookie 24721.4课时小结 24821.5课外作业 24821.5.1专家答疑 24821.5.2思考题 24921.5.3解答 25021.5.4实习 250第22学时使用CGI程序发送电子邮件 25122.1Internet邮件入门 25122.1.1发送电子邮件 25222.1.2发送邮件时首先应该注意的问题 25222.2邮件发送函数 25322.2.1用于UNIX系统的邮件函数 25422.2.2用于非UNIX系统的邮件函数 25522.3从Web页发送邮件 25722.4课时小结 25922.5课外作业 25922.5.1专家答疑 25922.5.2思考题 26022.5.3解答 26022.5.4实习 260第23学时服务器推送和访问次数计数器 26123.1什么是服务器推送 26123.1.1激活服务器推送特性 26223.1.2一个小例子:更新Web页上的时钟 26223.1.3另一个例子:动画 26323.1.4客户机拖拉技术 26423.2访问次数计数器 26423.2.1编写一个访问次数计数器程序 26623.2.2图形访问次数计数器 26723.3课时小结 26823.4课外作业 26923.41专家答疑 26923.4.2思考题 26923.4.3解答 26923.4.4实习 270第24学时建立交互式Web站点 27124.1借用另一个站点的内容 27124.1.1注意内容的版权问题 27124.1.2举例:检索标题 27224.2调查窗体 27524.2.1调查窗体程序的第一部分:提出问题 27624.2.2调查窗体程序的第二部分:计算调查结果 27724.3课时小结 28024.4课外作业 28024.4.1专家答疑 28024.4.2思考题 28124.4.3解答 28124.4.4实习 281第四部分附录附录安装模块 285