Effective Perl:编写高质量Perl代码的有效方法(第2版)英文版
  • 推荐0
  • 收藏0
  • 浏览108

Effective Perl:编写高质量Perl代码的有效方法(第2版)英文版

Joseph N. Hall(霍尔),Joshua A. McAdams(麦克亚当斯), brian d foy(福瓦) (作者)  无 (译者)

  • 丛  书:原味精品书系
  • 书  号:978-7-121-27268-4
  • 出版日期:2016-04-05
  • 页  数:492
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Effective Perl Programming: Ways to Write Better, More Idiomatic Perl (2nd Edition)
  • 原书号:0321496949
  • 维护人:张春雨
本书是Perl编程领域的“圣经”级著作。它提供了100多个翔实的应用案例,足以涵盖编程过程中经常遇到的方方面面,由此详细阐释出各种高效且简洁的写法。本书第1版曾畅销十年之久,而在第2版中不仅修正了前版存在的一些问题,更与时俱进地引入了许多Perl领域的新主题,使内容更加完善丰富,也更具实用性。
跨越12年来Perl的变化
增加8章内容:CPAN、数据库、软件分发、文件和文件句柄、测试、 Unicode、警告信息、Perl资源
系统更新的示例,引入当今很多新的惯用技法
推荐序
十年前,当我开始学习Perl时,我认为自己对这门语言已经了解得很多了——没错,对这门语言本身,我确实知道得很多。而我所不知道的,则是那些真正赋予Perl力量的惯用方法和其他灵活的语法结构。尽管不用它们也能写出绝大多数程序,但不掌握这些,则意味着自己的知识结构还不够完善,自己的工作效率也远远达不到理想状态。
我是幸运的,因为我得到了本书的第1版。不过,那本书从来没有机会停留在我的书架上,它一直都在我的包里,一有空我就会打开来读一段。
Joseph N. Hall的这本书内容编排简单得让人爱不释手,每一段内容虽短,但都饱含智慧,而且讲得十分明白透彻。不瞒你说,我们免费的Perl Tips电子报(http://perltraining.com.au/tips/)正是受了本书的启发才创刊的,这份电子报一直致力于探讨Perl及其社区的发展。
对于一门语言来说,十年意味着很大的变化,而社区对语言的认知则有更大的变化。因此,让我非常高兴的不仅是听到这本书的第2版即将出版的消息,更重要的是这个新版本出自Perl社区最杰出的两位成员之手。
不用说,brian对Perl的全心投入是有目共睹的。他不仅写了很多Perl语言方面的书,还负责出版一份杂志(The Perl Review),并且维护着Perl官方网站中的FAQ(常见问题解答),另外他在众多Perl及编程语言社区一直享有盛誉。
而Josh则以他运营的著名播客网站Perlcast闻名,他从2005年就开始在这个网站中以音频形式播放Perl新闻了。Josh总能找到那些著名的、有趣的人,对他们进行采访,这使他自己快速积累了大量知识,也让我对他羡慕不已。
总之,能向亲爱的读者朋友推荐本书的第2版,我感到荣幸之至。希望它能让你真正掌握这门语言的精髓,就像当年第1版对我的启蒙那样。
Paul Fenwick
Perl Training Australia总裁

再版前言
很多Perl程序员都是通过本书的第1版启蒙的。在1998年Addison-Wesley出版第1版的时候,整个世界似乎都在使用Perl。当时.com大潮正在兴起,所有懂点HTML的人都能找到程序员的工作。而这些人一旦开始编程,就需要迅速提升自己的技能。本书和其他两本“圣经级”著作Programming Perl1、Learning Perl2基本上是这些新程序员的必读书。
当时市面上还有不少其他的Perl书籍。如今的编程学习者应该很难想象当时美国书店的情况,那时候的书店中有数十米的书架摆放的都是编程书,而大多数都是关于Java和Perl的。如今的书店则只在一个小角落里摆放编程书,每种语言往往只会有几本书,而且大多数的书在上架后的半年内就会被其他书取代。
尽管如此,本书还是畅销了十年之久。这要归功于Joseph Hall对Perl编程哲学的深刻理解和他本人的过人智慧。毕竟这本书主要讨论的是Perl编程思想,他在第1版中给出的建议直到现在都还非常实用。
不过,如今Perl的世界和1998年相比已经有了很大的变化,值得提倡的理念也更多了。CPAN(Comprehensive Perl Archive Network,Perl综合典藏网)仅仅经过几年的发展,如今已经成了Perl最吸引人的特性。人们已经发现了许多更新更好的编程方式,而且这十年来业界积累了更多使用Perl的经验,也催生了很多新的最佳实践和惯用技巧。
自从本书第1版面世以来,Perl本身也有了很大的变化。第1版存在于从Perl 4到Perl 5的过渡时期,当时大家仍然在广泛使用Perl 4的一些古老特性。在这个新版本中,我们基本上消除了这些差异。现在只有一个Perl,那就是Perl 5(本书不讨论Perl 6,因为它值得另写一本书)。
现代Perl已经能够支持Unicode(而不仅仅是ASCII),因此你也应该适应这一点,我们为这个主题专门设置了一章。几年来,在Michael Schwern的推动之下,Perl已经成为被测试最多的语言,几乎每一个模块都非常稳定。Perl粉丝们怀念的“蛮荒时代”已经成为历史。今天,即使是快速原型的开发也可以同时考虑测试。如果你开发的是企业应用,那么你应该好好看一看我们针对测试给出的建议。如果你是一位正则表达式高手,那么你一定想了
解最新的Perl 正则特性,本书将介绍其中那些最常用的。
Perl 仍然在成长中,新的主题还在不断涌现。有些主题本身就值得用一本书的篇幅来介绍,比如Moose 这个“后现代”的Perl 面向对象框架,因而本书也就不勉为其难地去涵盖它们了。另一些主题,比如POE(Perl Object Environment,Perl 对象环境)、对象关系映射器,还有GUI 工具包等也都因为同样的原因而没有办法在本书中详细介绍。不过,我们已经计划再写一本More Effective Perl,到时候可能会涵盖更多的内容。
最后,Perl 的各种文档和专著较以前也丰富多了。虽然本书会尽可能多地讲到我们认为你应该知道的内容,但如果市面上已经有了详细讨论某些内容的书,我们自然也就不必置喙了,附录会推荐其他一些Perl 图书,这样做无疑也给更深入地讨论当前本书中的这些主题留出了余地。
Joseph N. Hall、Joshua A. McAdams 和brian d foy
第1 版前言
我曾经写过大量C 和C++ 代码。在专注于Perl 之前,我参与的一个重点项目是实现一门脚本语言,该语言能用来画圈、计算概率和生成FrameMaker 格式的书。这个语言用了大约5 万行与平台无关的C++ 代码,其中有不少相当有趣的特性。应该说,这个项目还是非常有意思的。
它耗费了我两年的时间。
对我来说,大多数有趣的C 或者C++ 项目都需要数月乃至数年的时间才能完成。这是因为那些有趣的功能往往比较复杂,所以需要耗费很多开发时间。不过在换为一门高级语言之后,只要3 个月的时间,我也可以把原先一大堆平淡无奇的想法变成有趣的项目。
这是我最初对Perl 感兴趣的原因之一。吸引我的是Perl 这个脚本语言中强大的字符串处理、正则表达式和流程控制能力。这正是那些C 和C++ 程序员(面对时间紧凑的项目时)最需要的特性。于是我学了Perl,而且实实在在地喜欢上了它。这要归功于一个相关项目,我在该项目中负责实现处理文本文件的功能:获取一个程序的输出,格式化之后再发给另一个程序处理。我用Perl 只花了不到一天就实现了这个功能,而如果使用其他语言,则恐怕需要几天甚至几周时间。
为何要写这本书
我一直都想成为一个作家。小时候我就迷上了科幻小说。我一直热衷于此,有时候一天能读三本,甚至还试着自己写(但写得不好)。之后的1985 年,我参加了在密歇根州东兰辛市(East Lansing)举办的Clarion 科幻小说作家培训班。随后一年左右的时间里,我偶尔会写一些短篇小说,不过从来没有发表过。后来,上课和工作占用的时间越来越多,我最终也就打消了写科幻小说的念头。不过,我还是坚持写作,只不过写的都是技术文档、教程、方案和文件。当然,我这些年来还陆续接触了好几个技术作者。
其中一个就是Randal Schwartz。我在一个工程项目中聘用他给我帮忙达一年之久(这是我第一次做技术主管,也是我第一次管理软件开发类的项目,相信大多数认识Randal 的人能猜到这点)。后来他选择离职去教Perl,过了一段时间我也去了。
在这段时间中,我对写作的兴趣更浓厚了。在C++、Perl、Internet 和World Wide Web等这些热门领域打拼了很多年,我觉得应该把其中一些有趣的东西写下来。应用和教授Perl的经验也让我的这个想法越来越强烈。我盼望着能写一本书,把自己日积月累的各种Perl技巧和反反复复遇到的陷阱汇集起来。
1996 年5 月,在圣何塞的一次开发者大会上,我和Keith Wollman 有了一次交谈。当时并没有谈到我想写书,我们只是讨论了哪些好的题材可以写成书。当谈到Perl 的时候,他问我:“你觉得一本名叫Effective Perl 的书会不会受欢迎呢?”这个书名打动了我。要知道,Scott Meyers 的Effective C++ 是我最喜欢的一本C++ 著作,而给该系列写一本Perl 的书显然是个好主意。
Keith 的话始终在我耳边回响。过了一段时间,我在Randal 的帮助下写了一个选题报告,而Addison-Wesley 公司批准了这个选题。
接下来,好戏开场了。我开始没日没夜地写作,常常在电脑跟前一坐就是12 个小时,除了用FrameMaker 写作,还在Perl 5 Porters 邮件列表中不厌其烦地问了不少的问题,查阅了几十本书和手册,编写了很多很多段Perl 代码,也喝了很多很多罐健怡可乐和百事可乐。
在查阅资料时,偶尔还会发现一些曾被自己忽略的最基础的Perl 知识。就这样过了一段时间,本书的第一稿诞生了。
这本书是我的一个尝试,希望借此与大家分享我在学习Perl 的过程中收获的经验和乐趣。最后,非常感谢你花时间阅读,希望这本书对你有价值,也能让你感到乐在其中。
Joseph N. Hall
亚利桑那州钱德勒市

第2版致谢
许多人帮我们审阅了第2版,指出了我们忽略的一些问题。对此,我们要感谢Abigail、Patrick Abi Salloum、Sean Blanton、Kent Cowgill、Bruce Files、Mike Fraggasi、Jarkko Hietaniemi、Slaven Rezic、Andrew Rodland、Michael Stemle和Sinan ünür。书中的某些地方也会直接指明他们的贡献。
另外有些人则为我们做了更多,他们几乎针对书中的每一章都提出了问题。正是因为他们的努力,书中许多错误才会在付梓前得以消灭。他们是Elliot Shank、Paul Fenwick及Jacinta Richardson。若还有错误,或许就只能归咎于我们没有管好自己的猫,这个调皮的小家伙一定是在我们不曾注意的时候到键盘上遛过弯儿。
Joseph N. Hall、Joshua A. McAdams和brian d foy
第1版致谢
这本书写来不易。我自认已经倾尽全力了,但如果不是得到了许多程序员、作者、编辑及其他专业人员的帮助肯定会更加艰难。我衷心感谢所有为本书面世而贡献了宝贵时间和精力的人。
Chip Salzenberg和Andreas “MakeMaker” K?nig帮我修正了不少程序漏洞,使得本书更加精练。对Chip的感激是无法用言语表达的。我对程序的关注实在太少了,向Chip致敬!
Perl 5 Porters邮件列表工作组也起到了很大的作用,他们为我解答了不少问题。其中尤其要感谢的是Jeffrey Friedl、Chaim Frenkel、Tom Phoenix、Jon Orwant(以The Perl Journal杂志闻名)和Charlie Stross。
Randal Schwartz是畅销书作者、教师和Just Another Perl Hacker的发起人,他也是我最主要的技术审稿人。所以如果你发现书中有任何问题,可以直接给他写邮件(开玩笑的)。非常感谢Randal,因为他在这本书上付出了许多时间和精力。
感谢Larry Wall创造了Perl,而他本人也解答了我很多的疑问,并且在一些地方提出了建议。
能和Addison-Wesley 在这个项目上合作,我觉得非常荣幸。这里遇到的每个人都善良而乐于助人,特别要感谢Kim Fryer、Ben Ryan、Carol Nelson 和Keith Wollman。
还有许多朋友在其他方面提供了帮助,Nick Orlans、Chris Ice 和Alan Piszcz 都耗费了大量时间阅读初稿。我的几位现任及前任老板Charlie Horton、Patrick Reilly 和Larry Zimmerman 则提供了许多灵感,也给了我很大鼓励。
另外,我在写作过程中尽可能坚持原创,但仍不可避免地受到Perl 在线手册和Programming Perl 等资料的影响。殊途同归,我已尽力用最有创意的方法来阐述,但很多情形下那些有关Perl 的经典诠释是难以超越的。
非常感谢Jeff Gong,他总是帮我“骚扰”电话公司,从而让我的T-1 线路保持畅通。
Jeff 总是懂得如何让客户开心。
非常感谢高尔夫这项运动,击球的简单动作能够让我保持清醒,并帮我排解压力。同样地,还要感谢《猎户座之王》和《文明II》两款游戏。
最后,我必须感谢Donna,我的未婚妻和终生伴侣,她也是专业的程序员。没有她的支持、鼓励和爱,这本书就无法写成。
Joseph N. Hall

目录

目录 阅读
Chapter 1 The Basics of Perl
Chapter 2 Idiomatic Perl
Chapter 3 Regular Expressions
Chapter 4 Subroutines
Chapter 5 Files and Filehandles
Chapter 6 References
Chapter 7 CPAN
Chapter 8 Unicode
Chapter 9 Distributions
Chapter 10 Testing
Chapter 11 Warnings
Chapter 12 Databases
Chapter 13 Miscellany

读者评论

同系列书

  • Clean Architecture:软件架构与设计匠艺(英文版)

    Robert C. Martin (作者) Robert C. Martin(罗伯特·C·马丁) (译者)

    马丁的简介代码不仅仅是提供选项。在半个世纪的软件环境中,每一种可以想象的类型,马丁告诉你做出什么选择,以及为什么它们对你的成功至关重要。正如你所渴望的,这本书中...

     
  • Effective Java(第2版)英文版

    (美)Joshua Bloch(约书亚·布洛赫) (作者) 无 (译者)

    本书通过78个有效案例,旨在帮助读者深入理解Java,以写出更加清楚、健壮、可重复使用的代码。书中每个章节均包含小论文,针对Java平台和杰出的代码样例,提供了...

    ¥65.00
  • C11编程导论英文版

    (美)Paul Deitel(保罗·戴特尔),(美) Harvey Deitel(哈维·戴特尔) (作者) (译者)

    本书沿用了Deitel特色的“程序实况解说”,深入探讨了C语言和C标准库。通过完整的语法着色、代码高亮、代码演练和程序输出,全面地介绍了测试程序的概念。本书汇集...

    ¥89.00
  • Effective Javascript:编写高质量JavaScript代码的68个有效方法 英文版

    (美)David Herman(大卫·赫尔曼) (作者) 无 (译者)

    本书由资深 JavaScript 技术专家 David Herman 所著。书中基于 JavaScript 标准的新版本前所未有地阐明了 JavaScript ...

    ¥65.00
  • Effective Python:编写高质量Python代码的59个有效方法 英文版

    (美)Brett Slatkin(布雷特·斯拉特金) (作者) 无 (译者)

    本书不是要讲述 Python 的基础编程,而是要帮你掌握 Python 独特的优势和魅力。书中总结了 59个 Python 编程的优秀实践、贴士和捷径,并用真实...

    ¥65.00

相关图书

Python机器学习手册:从数据预处理到深度学习

Chris Albon (作者) 韩慧昌 (译者)

这是一本关于Python的图书,采用基于任务的方式来介绍如何在机器学习中使用Python。书中有近200个独立的解决方案(并提供了相关代码,读者可以复制并粘贴这...

¥89.00

Python接口自动化测试

王浩然 (作者)

本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送H...

¥59.00

Python编程之美:最佳实践指南

Reitz,Schlusser (作者) 夏永锋 (译者)

本书是Python用户的一本百科式学习指南,由Python社区数百名成员协作奉献。<br>全书内容分为三大部分。第一部分是关于如何配置使用Python编辑工具的...

¥89.00

Lua程序设计(第4版)

Roberto Ierusalimschy (作者) 梅隆魁 (译者)

本书由 Lua 语言作者亲自撰写,针对 Lua 语言本身由浅入深地从各个方面进行了完整和细致的讲解。作为第 4 版,本书主要针对的是 Lua 5.3,这是本书撰...

¥89.00

Python网络安全教科书

胡松涛 (作者)

本书是一本黑客技术的入门实战书籍,从最初的工具选择,一直到最后的攻击演示,由浅入深地引导读者全面系统地掌握网络安全防范技术,借助Python打造更安全的网络。<...

¥69.00

Python数据分析入门——从数据获取到可视化

沈祥壮 (作者)

本书作为数据分析的入门图书,以Python语言为基础,介绍了数据分析的整个流程。本书内容涵盖数据的获取(即网络爬虫程序的设计)、前期数据的清洗和处理、运用机器学...

¥39.00