Perl 注解档案

作者:Paul Dunne
Perl Annotated Archives
  • 作者:Martin Brown

  • 出版社:Osborne/McGraw-Hill

  • 电子邮件:customer_service@mcgraw-hill.com

  • 网址:http://www.osborne.com/

  • 价格:49.99 美元

  • ISBN:0-07-882557-1

  • 评论员:Paul Dunne

这是一本好书,也是学习 Perl 的良好资源。副标题“带有注释的代码”很贴切。这本书充满了清晰解释的代码。研究这种带有注释的实用代码示例是学习一门语言或增加对一门语言的了解的理想方式。作者采取了一种跨平台的策略,这很高兴看到。即使大多数示例不可避免地是基于 UNIX 的,但也演示了一些代码来修复 NT 和 Macintosh 问题。通常带有代码示例的 CD 包含在内。一个小小的烦恼是行以“CRLF”结尾,但我认为 Linux 用户处理这个问题比使用 NT 的用户处理裸换行符更容易。

这本书分为四个部分。它以“文本处理”开始,这也作为 Perl 的基本介绍。本节首先总结了常用的过滤器,然后检查简单的文件操作,最后以各种类型的文本数据库工作结束。之后,“网络和电子邮件”很好地说明并解释了 Perl 对网络编程的优秀支持。第 3 部分“万维网”涵盖了人们所期望的内容:HTML 处理和 CGI 脚本。CGI 覆盖范围从简单的示例到完整的在线购物应用程序。最后,“管理员工具包”提供了一套用于系统和网络管理的有用工具。总而言之,11 个章节,包含一百多个清晰详细解释的脚本——我在这里找不到任何缺点。

但是,我有一个问题要提出。也就是说,“一切都用 Perl”并不总是最好的方法。虽然很难指责一本关于 Perl 的书采取这种方法,但我仍然希望看到更多关于 Perl 如何与现有 UNIX 实用程序协作的强调。例如,我的 ISP 使用动态 IP 地址,所以当我想知道我这次的 IP 地址是什么时,我使用了一个小的 shell 脚本,如下所示

ifconfig | grep ppp -A1 | domain.pl | head -1

其中 domain.pl 是以下脚本

#!/usr/bin/perl -n
while (m/(([-a-zA-Z0-9]+\.[-a-zA-Z0-9]+)(\.[-a-zA-Z0-9]+)*)/g) {
    print "$1\n";
}
我知道这不能涵盖所有情况,但它在需要的地方有效。我想我可以在 Perl 中实现整个管道;但对我来说,并且我怀疑对许多其他 UNIX 用户来说,将一些工具拼凑在一起比编写程序更容易,即使是在像 Perl 这样容易上手的语言中。为什么要重复发明轮子?最好将 Perl 用作 UNIX 工具包的一部分,而不是取代它。

总之,由于 Perl 最为人所知的是作为将许多网站连接在一起的“胶水”,因此如果这本书针对除 Perl 学习者和用户之外的任何特定受众,那么它的目标是网站管理员或程序员。但是,任何对 Perl 感兴趣的人都非常值得阅读它。

Paul Dunne (paul@dunne.ie.eu.org) 是一位专门从事 Linux 的爱尔兰作家和顾问。他唯一一次按时完成的任务是他发表的第一篇文章。他的主页是 http://www.cix.co.uk/~dunnp/

加载 Disqus 评论