现代Perl第4版,书评

chromatic所著的《现代Perl》第4版已经出版。我得到了一本提前审阅的副本,书中还包含了我对它的赞誉之词,所以我认为是时候把我的一些笔记整理成一篇更长的书评了。总的来说,我非常喜欢新版的变化;在我看来,《现代Perl》继续提供了一本有价值的关于Perl编程惯例的入门书。

学习Perl的惯例风格

《现代Perl》不像你典型的枯燥编程书籍。首先,它是有观点的。作者chromatic借鉴他的经验,提供了一本内行指南,展示了在Perl中编程的正确方式。

文本内容紧凑,不迁就读者。书中不是从“hello World”开始,而是先教读者如何使用perldoc,并在遇到困难时利用官方文档。当答案可以在命令行几秒钟内找到时,不要浪费时间用Google搜索(见此处)

第1章和第2章介绍了Perl哲学和社区。本书迅速覆盖了Perl的主要特性(第3章至第7章),以及更高级的主题,如递归、匿名函数和闭包。书中穿插着智慧之珠,解释了给定概念背后的理由。例如,关于在所有函数调用中包括括号(即使是没有参数的调用)

尽管在这些例子中括号并非绝对必要——即使在启用strict的情况下——但它们为人类读者以及Perl解析器提供了清晰性。当不确定时,使用它们。

《现代Perl》第4版,第5章,声明函数

尽管如此,这里的重点是实用,chromatic很快就转向了关于良好Perl风格元素和如何学习的建议(第8章),以及实际的编程技巧(第9章)。这是一本关于Perl的诚实、专家的账目,第11章描述了在Perl中应该避免的内容(第5章也有关于函数误特性的条目)。

虽然这是一本入门书,但chromatic还是找到了时间来触及几个中级概念,如taint、Schwartzian转换和尾调用优化。这里总有一席之地:重读这一节 State-versus-Closures(第5章),我学到了以前没有欣赏到的细微之处。

《现代Perl》假设了很多,这可能对初学者来说是一项挑战。例如,代码片段假设读者可以区分命令行和Perl编程环境。示例中使用了map和grep,但在语言概述章节中并未涉及。但这些只是小问题。

“现代”Perl?

大约10年前,Perl经历了一场名为“现代Perl”的复兴。这是一场开发了强大的新库、工具和应用程序的运动,使Perl编程焕发了新的活力,并给它带来了新的生命。如今,“现代Perl”这个短语几乎与Perl“最佳实践”同义,其精神仍在帮助Perl蓬勃发展。

有什么变化

第4版带来了很多变化,但这是一种进化,而不是革命。涵盖了新的Perl特性,如双钻石操作符(<<>>)和子程序签名。几乎每一段文字都进行了更新(见此处),但章节结构保持不变,许多编辑只是小的调整,而不是彻底重写。许多变化提高了文本的可读性,其他则去除了术语,例如

函数是Perl中抽象、封装和重用的主要机制。

《现代Perl》,第3版,第5章

变为

函数是组织代码成相似组、通过名称识别个别部分以及提供可重用行为单元的主要机制。

《现代Perl》,第3版,第5章

这显然对初学者来说更容易理解。在代码方面,许多示例已从BSD风格更改为K&R风格,可能是为了节省垂直空间。总的来说,书的长度保持大致相同(205页与204页)。

新版本的最大变化来自《实用图书架》——他们的版本简直太棒了。全彩印刷,字体更大,图标和注释,这本书真的让人眼前一亮。这正是现代Perl所需要和应得的布局。参见Onyx Neon和实用图书架版本的比较。

替代方案

作为Perl的见解性介绍,《现代Perl》是教程和最佳实践风格烹饪书的折中。我喜欢它的方向和简洁的写作风格,但这本书可能对完全的初学者来说有点快。所以这取决于你寻找什么——《开始学习Perl》(作者:Curtis Poe,ISBN:1118013840)和《学习Perl》(作者:Randal L. Schwartz,ISBN:1449303587)是语言的良好入门书籍。《高效Perl编程》(作者:Tom Phoenix,ISBN:0321496949)是我最喜欢的Perl烹饪书。但《现代Perl》是这两种风格的独特融合。

在哪里获取

您可以在网上免费阅读《现代Perl》(链接),并且可以从Onyx Neon下载。如果您想以电子书形式阅读,我推荐实用图书架的版本(链接)——它风格优美、免费,并且您将有权获得文本的更新。


本文最初发布在PerlTricks.com

标签

David Farrell

David是一位职业程序员,他经常在Twitter上发推文并在博客上写关于代码和编程艺术的帖子。

浏览他们的文章

反馈

这篇文章有什么问题吗?通过在GitHub上打开问题或拉取请求来帮助我们。