Perl语言编程(第三版)
Perl语言编程(第三版)
Larry Wall, Tom Christiansen, Jon Orwant
何伟平 著
出版时间:2001年12月
页数:1128
Perl是一门自由且功能强大的编程语言。自1987年初次登台亮相以来,它的用户数一直急剧膨胀。本书的第一版于1991年正式摆上书架,之后迅速成为这门语言无可争议的宝典。
本书不仅仅是一本关于Perl的书籍,更是一本独一无二的开发者自己介绍该语言及其文化的书籍。Larry Wall是Perl的开发者,并就Perl的未来发展方向提出了自己的看法。
Tom Christiansen是Perl最早的几个拥护者之一,也是少数几个在错综复杂的Perl中游刃有余的人之一。Jon Orwant是《Perl Journal》的主编,该杂志把Perl社区组合成了一个共同的论坛,以进行Perl新的开发。
任何Perl书籍都会介绍Perl函数的语法,但是只有这本权威指南包括这门语言的所有内幕。任何Perl书籍都会列出许多的特性,但是只有这本书会告诉你为什么会有这些特性以及如何自然地使用它们。任何Perl书籍都可能有一个头衔,但是只有这本书会被所有Perl程序员动情地称之为“骆驼书”。
从最初被当作一种在跨平台环境中书写可移植工具的高级语言开始,Perl就已经被广泛地认为是一种工业级的强大工具,可以在任何地方用来完成你的工作。Perl特别适合系统管理和Web编程。Perl实际上已经被所有Unix(包括Linux)捆绑在一起作为标准部件发布,而且也被广泛用于Microsoft Windows和几乎所有其他操作系统。Amiga、BeOS、VMS、MVS和 Apple Macintosh等也只是Perl已经完成移植的平台的一小部分。
本书有哪些新的内容呢?老实说几乎所有都是新的。本书第三版涵盖了新的Perl 5.6版本,不仅完全重新组织了一遍,而且还用无数个例子强化了这些内容。大多数现有的主题都是从头重写的,如面向对象编程和正则表达式,并添加了许多全新的章节,包括描述、pod、Unicode、线程、编译和Perl本质。
既是圣经,又是百科全书,也是年鉴,这就是本书的内涵。
  1. 前言
  2. 第一部分 概述
  3. 第一章 Perl概述
  4. 从头开始
  5. 自然语言与人工语言
  6. 一个平均值例子
  7. 文件句柄
  8. 操作符
  9. 控制结构
  10. 正则表达式
  11. 列表处理
  12. 你不知道但不会伤害你的东西(很多)
  13. 第二部分 细节
  14. 第二章 集腋成裘
  15. 原子
  16. 分子
  17. 内置的数据类型
  18. 变量
  19. 名字
  20. 标量值
  21. 环境
  22. 列表值和数组
  23. 散列
  24. typeglob和文件句柄
  25. 输入操作符
  26. 第三章 一元和二元操作符
  27. 项和列表操作符(左向)
  28. 箭头操作符
  29. 自增和自减操作符
  30. 指数运算
  31. 表意一元操作符
  32. 绑定操作符
  33. 乘号操作符
  34. 附加操作符
  35. 移位操作符
  36. 命名一元操作符和文件测试操作符
  37. 关系操作符
  38. 相等操作符
  39. 位操作符
  40. C 风格的逻辑(短路)操作符
  41. 范围操作符
  42. 条件操作符
  43. 赋值操作符
  44. 逗号操作符
  45. 列表操作符(右向)
  46. 逻辑与、或、非和异或
  47. Perl中没有的C操作符
  48. 第四章语句和声明
  49. 简单语句
  50. 混合语句
  51. if 和 else 语句
  52. 循环语句
  53. 裸块
  54. goto
  55. 全局声明
  56. 作用域声明
  57. pragma
  58. 第五章 模式匹配
  59. 正则表达式箴言
  60. 模式匹配操作符
  61. 元字符和元符号
  62. 字符类
  63. 量词
  64. 位置
  65. 捕获和群集
  66. 候选项
  67. 内部控制
  68. 谜一样的模式
  69. 第六章 子例程
  70. 语法
  71. 语义
  72. 传递引用
  73. 函数原型
  74. 子例程属性
  75. 第七章 格式
  76. 格式变量
  77. 页脚
  78. 第八章 引用
  79. 什么是引用?
  80. 创建引用
  81. 使用硬引用
  82. 符号引用
  83. 大括号、中括号和引号
  84. 第九章 数据结构
  85. 数组的数组
  86. 数组的散列
  87. 散列的数组
  88. 散列的散列
  89. 函数的散列
  90. 更灵活的记录
  91. 保存数据结构
  92. 第十章 包
  93. 符号表
  94. 自动装载
  95. 第十一章 模块
  96. 使用模块
  97. 创建模块
  98. 覆盖内置函数
  99. 第十二章 对象
  100. 简单复习一下OOL
  101. Perl 的对象系统
  102. 方法调用
  103. 构造对象
  104. 类继承
  105. 实例析构器
  106. 管理实例数据
  107. 管理类数据
  108. 总结
  109. 第十三章 重载
  110. overload pragma
  111. 重载处理器
  112. 可重载操作符
  113. 拷贝构造器(=)
  114. 当没有重载处理器时(nomethod和fallback)
  115. 重载常量
  116. 公有重载函数
  117. 继承和重载
  118. 运行时重载
  119. 重载诊断
  120. 第十四章 绑定变量
  121. 绑定标量
  122. 绑定数组
  123. 绑定散列
  124. 绑定文件句柄
  125. 一个精细的松绑陷阱
  126. CPAN中的模块
  127. 第三部分 作为技术的 Perl
  128. 第十五章 Unicode
  129. 制作字符
  130. 字符语义的效果
  131. 请注意,“人(Unicode)”可以用了
  132. 第十六章 进程间通信
  133. 信号
  134. 文件
  135. 管道
  136. System V IPC
  137. 套接字
  138. 第十七章 线程
  139. 进程模型
  140. 线程模型
  141. 第十八章 编译
  142. Perl 程序的生命周期
  143. 编译你的代码
  144. 执行你的代码
  145. 编译器后端
  146. 代码生成器
  147. 代码开发工具
  148. 提前编译,回头解释
  149. 第十九章 命令行接口
  150. 命令行处理
  151. 环境变量
  152. 第二十章 Perl调试器
  153. 使用调试器
  154. 调试器命令
  155. 定制调试器
  156. 不被注意的执行
  157. 调试器支持
  158. Perl 描述器
  159. 第二十一章 内部和外部
  160. Perl 如何运行
  161. 内部数据类型
  162. 扩展Perl(在Perl中使用C)
  163. 嵌入Perl(从C中使用Perl)
  164. 道德故事
  165. 第四部分 作为文化的Perl
  166. 第二十二章 CPAN
  167. CPAN模块目录
  168. 使用CPAN模块
  169. 创建CPAN模块
  170. 第二十三章 安全
  171. 处理不安全数据
  172. 处理计时缝隙
  173. 处理不安全代码
  174. 第二十四章 通用实践
  175. 新手常见错误
  176. 效率
  177. 有风格地编程
  178. 流利的Perl
  179. 生成程序
  180. 第二十五章 可移植的Perl
  181. 换行符
  182. 字节顺序(endianness)和数字宽度
  183. 文件和文件系统
  184. 系统交互
  185. 进程内通信(IPC)
  186. 外部子例程(XS)
  187. 标准模块
  188. 日期和时间
  189. 国际化
  190. 风格
  191. 第二十六章 pod
  192. pod技术
  193. pod翻译器和模块
  194. 书写你自己的pod工具
  195. pod的缺陷
  196. 给Perl程序写文档
  197. 第二十七章 Perl文化
  198. 时势造英雄
  199. Perl诗歌
  200. 第五部分 参考资料
  201. 第二十八章 特殊名字
  202. 按照类型分组的特殊名字
  203. 按照字母顺序排列的特殊变量
  204. 第二十九章 函数
  205. 按类别区分的Perl函数
  206. 按照字母顺序排列的Perl函数
  207. 第三十章 标准Perl库
  208. 库科学
  209. Perl库巡礼
  210. 第三十一章 pragma
  211. use attributes
  212. use autouse
  213. use base
  214. use blib
  215. use bytes
  216. use charnames
  217. use constant
  218. use diagnostics
  219. use fields
  220. use filetest
  221. use integer
  222. use less
  223. use lib
  224. use locale
  225. use open
  226. use overload
  227. use re
  228. use sigtrap
  229. use strict
  230. use subs
  231. use vars
  232. use warnings
  233. 第三十二章 标准模块
  234. 按照类型排列
  235. Benchmark
  236. Carp
  237. CGI
  238. CGI::Carp
  239. Class::Struct
  240. Config
  241. CPAN
  242. Cwd
  243. Data::Dumper
  244. DB_File
  245. Dumpvalue
  246. English
  247. Errno
  248. Exporter
  249. Fatal
  250. Fcntl
  251. File::Basename
  252. File::compare
  253. File::Copy
  254. File::Find
  255. File::Glob
  256. File::Spec
  257. File::stat
  258. File::Temp
  259. FileHandle
  260. Getopt::Long
  261. Getopt::Std
  262. IO::Socket
  263. IPC::Open2
  264. IPC::Open3
  265. Math::BigInt
  266. Math::Complex
  267. Math::Trig
  268. Net::hostent
  269. POSIX
  270. Safe
  271. Socket
  272. Symbol
  273. Sys::Hostname
  274. Sys::Syslog
  275. Term::Cap
  276. Text::Warp
  277. Time::Local
  278. Time::localtime
  279. User::grent
  280. User::pwent
  281. 第三十三章 诊断消息
  282. 词汇表
书名:Perl语言编程(第三版)
译者:何伟平 著
国内出版社:中国电力出版社
出版时间:2001年12月
页数:1128
书号:7-5083-0730-5
原版书出版商:O'Reilly Media
Larry Wall
 
Larry Wall已经是一些Unix上被普遍使用的开源软件的作者,这些软件包括新闻阅读器rn、普遍存在的补丁程序、Perl编程语言。同时他也因为metaconfig而闻名—— 一个能够写配置脚本,并且能用于星球大战游戏的程序,其第一个版本是在Seattle Pacific大学用BASIC/PLUS语言写成的。通过训练,Larry真正成为一名语言专家,作为一名研究生游走于U.C Berkeley和UCLA之间。(实际上,在Berkeley期间,他除了做 Unix的开发工作以外,没有做什么其他事)。
Larry曾经作过JPL的程序员。他也在Unisys工作过,从事过从分离事件模拟器到软件开发方法的工作。正是在那里,当他想试着使用黑客版本的Netnews将bicoastal配置管理系统通过1200波特率的加密连接结合起来时,Perl语言诞生了。
目前Larry仍在O'Reiily公司做一些有关Perl的咨询工作。






Larry Wall是Perl的创造者,也是其他一些流行的Unix自由软件的作者,包括rn新闻阅读器和无处不在的patch程序。从学历来看,Larry实际上是一位语言学家,是加州大学伯克利分校和洛杉矶分校的毕业生。在这些年中,他在Unisys、JPL、NetLabs和Seagate工作过,做的事情从离散事件模拟器到网络管理系统,偶尔还搞过宇宙飞船。正是在Unisys工作的期间,在他试图把一个跨东西海岸的配置管理系统用一个1200波特的加密链路、和一个经过修改的Netnews粘合起来时,Perl诞生了。Larry目前为O'Reilly公司工作。
 
 
Tom Christiansen
 
Tom Christiansen是一个自由咨询专家,他的专长是Perl培训和写作。在为TSR Hobbies公司工作了若干年后,他上了大学,一年在西班牙,五年在美国,选修了音乐、语言、编程和大约五、六种语言的口语课程。Tom最终在获得西班牙语和计算机科学学士学位和计算机科学硕士学位后离开了威斯康星大学麦迪逊分校。
然后他花了五年的时间在Convex做系统管理、公用设施、核心开发、客户支持和培训等一切事情。Tom还在USENIX协会主任委员会中服务过两个学期。
拥有15年多UNIX系统管理和编程经验,Tom出席世界各地的研讨会。他住在科罗拉多的Boulder的山脚下,周围有骡、鹿,鼬鼠,偶尔还有山林狮子和黑熊。Tom夏天去徒步旅行、骑马、喂鸟、音乐制作和玩游戏。
Tom Christiansen是一位擅长Perl培训和写作的自由作家兼顾问。Tom早在1987年Perl最早的版本诞生时就开始接触Perl了。他是《Perl Cookbook》的主要作者以及《Learning Perl》和《Learning Perl on Win32 Systems》两本书的作者之一,还是Perl在线文档最主要的维护人员。Tom持有计算机科学和西班牙语学士学位以及计算机科学硕士学位。现在他住在科罗拉多巨石市。
 
 
Jon Orwant
 
Jon Orwant博士是O'Reilly公司的CTO和《The Perl Journal》的主编。他是《Mastering Algorithms with Perl》的合作者之一以及《Perl 5 Interactive Course》的作者。在加盟O'Reilly公司之前,他是麻省理工学院媒体实验室电子出版组的成员,在那里他得到了博士学位,研究的内容是预测用户的行为、游戏编程的自动化以及利用计算机生成人性化的新闻和娱乐节目。Jon还是VerticalSearch. com、Focalex公司和YourCompass公司的顾问组成员。
Jon经常在会议上发表演讲,面对的听众多种多样,比如(最近是)程序员、记者和博彩公司主管。他很喜欢写代码和散文,他的三样恶习是赌博、酒精和数学。他还是1994年世界上第一个互联网上的股票选择游戏(一个用Perl写的TCP/IP服务器,当初是因为和人打赌花了一晚上写的)的作者,但是从来没想到过用它来挣钱。他还是Billy Crystal和Milton Berle的远房亲戚(不过他为此感到羞愧)。
 
 
本书封面上的动物是一只单峰骆驼。骆驼是大型反刍动物,重量为1000~1600磅(约450~720公斤),肩部的高度是6~7英尺(约1.8米~2.1米)。骆驼由于在沙漠地区(特别是非洲和亚洲)被当作运输工具而闻名于世。骆驼可以好几天不喝水。当食物确实缺乏时,它们什么都会吃,甚至连主人的帐篷也不例外。骆驼的寿命大概是50年。