"现代"Perl入门资源

19

听说了Perl生态系统的新组件,如Moose、DeclareX和Catalyst,我想看看Perl。不幸的是,我能找到的所有入门材料都面向Perl 5.8或5.6,并且对这些新框架一无所知,更别提在最近的Perl版本中引入的功能,例如~~运算符。有哪些资源适合那些对Perl感兴趣且想要从头开始学习当前最佳实践的人?

虽然我可以阅读骆驼书的第三版,然后通过大量CPAN文档等方式逐步工作,但我非常感激一个教程,这个教程不会强迫我学习一堆已过时的方法,然后当我阅读参考手册时再去反学它们。真实世界的代码,良好的文档和使用这些新的Perl角落的代码也将非常棒。


4
如果有人能够承担编写一本“后现代Perl编程”书籍的项目,其中涵盖Moose,或许可以与1.0版本的发布同时进行? - Ether
1
“他们”(无论他们是谁)可能正在等待Perl 6的生产版本以生成更现代的文档。我同意,考虑到Perl 5已经发布了这么长时间并且已经进行了很多升级,有一个基于当前版本的良好介绍会很不错。 - David Thornley
即使 Perl 6 明天就发布了,我重新关注 Perl 的一个吸引点是它——我指的是 Perl 5——已经被安装到了每个角落。Perl 6 发布后很长一段时间内都不会有这种情况。因此,即使没有其他原因,拥有最新的 Perl 5 文档也是值得努力的事情。 - Benjamin Pollack
5
同意,即使perl6今天发布了(而根据我听到的,它的发布还有很长一段时间),perl5也仍然有很长的寿命。 - Ether
1
关于智能匹配运算符~~,请务必阅读有关其在Perl 5.10.1中行为变化的内容:http://search.cpan.org/~dapm/perl-5.10.1/pod/perl5101delta.pod#Smart_match_changes。 - Christopher Bottoms
5个回答

19

chromatic正在撰写一本现代Perl书籍,可在他的Github账户中预览。最近由Kieren Diment和Matt Trout合著的Catalyst book涵盖了几种现代Perl实践和目前的“启迪堆栈”(Matt认为是这样称呼的)。

此外,还有一本Moose书正在进行中,但即使作者能全职投入其中,我也怀疑它将在明年夏天之前发布。关于学习最佳实践,只要您谨慎参考Damian的Perl最佳实践讨论时的观点,其内容值得一读。我不建议将其想法视为最佳实践,但它们揭示了哪些方面需要讨论,您可以搜索人们对其评论的看法。我个人最大的问题是其中的面向对象建议,这促使我发现了我非常喜欢的Moose。

最后,与社区互动。加入一个或三个邮件列表,一个或两个IRC频道,并定期博客记录您正在学习的内容。Perl社区通常支持帮助真正有兴趣学习的人找到他们需要的工具。


由于某些原因,单击 GitHub 链接会出现“文件未找到”页面,即使 URL 看起来是正确的。 - Sinan Ünür
1
是的,Stack Overflow的Markdown引擎正在破坏URL。我试图修复它,但它仍然被破坏了。对于其他人来说,该URL是http://github.com/chromatic/modern_perl_book。 - Benjamin Pollack
1
在现代 Perl 博客方面,Enlightened Perl 组织举办的 Ironman 博客比赛(http://ironman.enlightenedperl.org/)是一个发现处理 Perl 后现代方面并突出展示目前尚未在任何书籍中涉及的模块和技术的博客的绝佳途径。 - jeekl

12
《学习Perl,第5版》的内容是基于Perl 5.10版本的。对于初学者需要了解的其他新特性以及你想要的智能匹配运算符都有专门的章节。如果你想开始学习Perl,那么这本书是不错的选择。一旦你掌握了这本书,就可以学习其他感兴趣的内容了。同时,我还会在春季开始前发行《高效Perl编程,第2版》,该书将覆盖Perl 5.10.1版本(也许会更远,因为我们在一些代码中使用了至少一个5.12特性)。
你真的不需要一本关于Catalyst或Moose的书籍。由于这些项目变化非常快,任何你读到的东西都已经过时了。无论如何,你还需要先学习基础知识再深入学习进阶主题。
作为一名程序员,你不得不逐渐适应不依赖于书籍来学习的方式。因为技术更新太快了,我不能快速写出所有的书籍,所以你还需要从文档中学习。这就是生活。

1
我有足够的编程经验,很感激你对书籍立刻过时的评论,但这两面都不好:如果书立刻过时,那么我去年写的代码也是如此,这本身就会非常令人沮丧。然而,了解这些框架如此不稳定是很有用的,因为我所学的任何东西都很可能会立即失效。 - Benjamin Pollack
6
如果你追随最新潮流的话,你的代码可能已经过时了。不要盲目追逐潮流,如果你坚持足够长的时间,你会发现将一些热门话题推迟一年左右,当人们转向最新的炫酷事物时,可以节省很多工作量。值得一提的是,“现代Perl”的大部分内容都适用于过去五年内的任何Perl版本。 - brian d foy
3
为捍卫 Catalyst 项目,该项目实际上非常努力地不破坏正在运行的代码。相当多的应用程序从 Catalyst 5.3 开始编写,仍可以在 5.8 上运行,或者只需进行最小的修改即可运行。最佳实践可能会改变,但基本原理不会改变。最新的书籍也非常具有前瞻性。话虽如此,你不需要一本 Catalyst 书籍。要担心学习 Perl。阅读任何2001年或之后的书籍,阅读 perldocs,阅读代码,在线与人交流! - hobbs

4
OSCON上,Paul Fenwick做了一个名为“Awesome Things You've Missed in Perl”的演讲,其中提供了几个代码示例和使用现代Perl的技巧。
这次演讲被记录了下来,但还没有加入记录列表: http://www.oscon.com/oscon2010/public/schedule/proceedings 以下是一些其他值得一看的伟大演讲,它们也提供了现代Perl的示例:
- Top 10 Perl Performance Tips - Understanding and Optimizing your Code with Devel::NYTProf - Moose is Perl: A Guide to the New Revolution

最后(非OSCON相关):

拉里·沃尔在谷歌的演讲


1
+1 谢谢,我不知道OSCON提供视频和PDF。 - Christopher Bottoms

3
即使这个答案非常晚,有一本关于现代Perl的新书在2012年出版。它叫做《Beginning Perl》,作者是Curtis 'Ovid' Poe。它专注于学习雇主所需的Perl技能,并适用于编程初学者或想要学习新语言的经验丰富的程序员。
介绍了语言本身后,Ovid继续讲解DBIx::Class、Moose、Catalyst和更多CPAN工具以及社区最佳实践,并提供了大量实际示例,演示了在工作场所中如何实际使用Perl,用于Web开发、数据处理或系统管理。该书最初可以在O'Reilly网站上免费获取,但现在已被删除(您必须支付印刷版或电子版)。
希望对未来阅读此QA的读者有所帮助。

谢谢你的插头 :) 请记住一件事,尽管我微妙地介绍了很多“现代Perl”,但这本书仍然像你指出的那样,非常专注于实际工作场所。越来越多的Perl商店正在寻求现代Perl技能,但仍有大量商店依赖传统Perl(来源:我的妻子和我也从事IT招聘)。 - Ovid

2
我建议您先阅读学习Perl第五版,然后再阅读Damian Conway的Perl最佳实践(也在之前提到过)。
我还想向您介绍PBP模块推荐评论,该评论讨论了Perl最佳实践中讨论的模块的当前“社区观点”。
尽管该网站讨论(或未讨论)的内容有所不同,但我最喜欢的Perl最佳实践建议之一是Data::AliasSmart::Comments(尽管Smart::Comments是源码过滤器,但您可以在将代码发送到生产之前轻松删除它。 它非常适合调试)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接