19

在听说了 Perl 生态系统的新部分,例如 Moose、DeclareX 和 Catalyst 之后,我认为看看 Perl 会很不错。不幸的是,我能找到的所有介绍性材料都是针对 Perl 5.8 或 5.6 的,而且对这些较新的框架一无所知——更不用说在最近的 Perl 版本中引入的功能,例如~~运算符。有哪些资源可供对 Perl 新手感兴趣并想从一开始就学习当前最佳实践方法的人使用?

虽然我可以阅读骆驼书的第 3 版,然后通过成堆的 CPAN 文档等来完成剩下的工作,但我非常感谢一个不会强迫我学习一堆过时的方法的教程东西,只是为了在我阅读参考手册时转身并再次忘记它们。有据可查并使用 Perl 的这些较新的部分的真实世界的代码也会很棒。

4

5 回答 5

19

chromatic正在编写一本现代 Perl 书,可在他的Github 帐户中预览。Kieren Diment 和 Matt Trout最近的Catalyst 书籍涵盖了几种现代 perl 实践以及我相信 Matt 所说的当前“Enlightened Stack”。

还有一本 Moose 书的工作正在进行中,但我怀疑它会在明年夏天之前推出,即使作者能够全职专注于它。对于学习最佳实践,只要您对它持保留态度, DamianPerl 最佳实践中的讨论就值得一读。我不建议他的做法是最好的,但它们阐明了对话点的位置,您可以在谷歌周围搜索人们对此的评论。我个人遇到的最大问题是它的 OO 建议,它让我找到了我喜欢的 Moose。

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

于 2009-11-18T22:55:03.363 回答
12

学习 Perl,第 5 版是最新的 5.10。除了初学者想要的其他新功能之外,甚至还有智能匹配运算符的一章,就像您想要的那样。如果你想开始学习 Perl,那就是这本书。一旦你完成了它,就去做你想做的任何其他事情。我也会在春季开始时出版Effective Perl Programming, 第 2 版。这将是最新的 5.10.1(可能会更远,因为我们在某些代码中至少使用了一个 5.12 功能)。

你真的不想要一本关于 Catalyst 或 Moose 的书。你读到的任何东西都会过时,因为这些项目的速度很快,而且实践变化很快。无论如何,在深入研究高级主题之前,您将需要学习基础知识。

要继续作为一名程序员,你将不得不习惯于不依赖书籍。我不能像东西变化一样快地编写它们,所以你也必须从文档中学习。生活就是这样。

于 2009-11-19T01:24:30.233 回答
4

Paul Fenwick 在OSCON上发表了关于“Perl 中你错过的很棒的事情”的精彩演讲,其中他提供了几个代码示例和使用 Modern Perl 的使用技巧。

演讲已录制,但尚未在录音列表中: http ://www.oscon.com/oscon2010/public/schedule/proceedings

以下是一些其他值得一试的精彩演讲,它们也提供了 Modern Perl 的示例:

最后(不是来自 OSCON):

拉里沃尔在谷歌演讲

于 2010-07-26T23:12:39.053 回答
3

即使这个答案已经很晚了,一本关于 Modern Perl 的新书已经在 2012 年问世。它被称为Beginning Perl,由Curtis 'Ovid' Poe撰写。它侧重于学习雇主正在寻找的 Perl 技能,适用于编程初学者或想要学习一门新语言的实验程序员。

在介绍了语言本身之后,Ovid 继续介绍 DBIx::Class、Moose、Catalyst 和更多 CPAN 工具和社区的最佳实践,并提供大量真实示例,展示您如何在工作场所实际使用 Perl,进行 Web 开发、数据处理或系统管理。这本书最初在 O'Reilly 网站上免费提供,但现在已被删除(您必须为印刷版或电子版付费)。

希望它对本 QA 的未来读者有用。

于 2013-08-20T17:46:27.493 回答
2

我会推荐前面提到的Learning Perl 5th Edition,然后是 Damian Conway 的Perl Best Practices(之前也提到过)。

我还想向您指出PBP 模块推荐评论,它讨论了 Perl 最佳实践中讨论的模块的当前“社区视图”。

尽管在这个站点上讨论(或不讨论)什么,我最喜欢的两个 Perl 最佳实践建议是Data::AliasSmart::Comments(即使Smart::Comments是源过滤器,您也可以在将代码发送到生产环境之前轻松删除它。它非常适合调试。)。

于 2009-11-20T23:46:11.150 回答