我已经做了大约8年的Perl,现在我正在进入那个大量利用面向对象的Perl的项目,所以我需要重新调整我的Perl技能并快速完成.在过去几年中,我主要做了各种Java开发和一些PHP.我非常擅长OO而且我不是任何偏远程度的新手程序员.
所以这里有一个问题:你们可以推荐哪些最好的资源/网站/实践/方式/书籍来学习我生锈的Perl技能并学习Perl"新方法"?您的建议将不胜感激.
PS我确实研究过一些以前的答案.我想强调一点,我不是在寻找新手书籍/资源(语法,核心原理等),而是特别是那些涵盖我在Perl编程时不存在的OOP功能(或者我当时可能会忽略它) )
PPS感谢大家的建议和提示.经过一番考虑后,我选择@MBO回答,因为它首次提到Moose,到目前为止我真的很喜欢.
MBO*_*MBO 21
我此时不编写Perl代码(目前我使用的是其他语言),但我不时阅读这个网站:http://www.modernperlbooks.com/mt/.还要检查Moose在Perl中定义对象的新方法
小智 21
好吧,首先,高阶Perl非常好,但它是关于函数式编程,而不是对象.
Perl Best Practices是一本很好的书,但它有局限性,其中之一就是Conway建议使用他自己的Class :: Std模块来做内向外的对象,而普遍的共识似乎是(1)如果你'要做内到外的对象,Object :: InsideOut和Class :: InsideOut是更好的方法(2),无论如何,使用"Moose"对象是一个更好的方法.
这说明了Java和Perl世界之间可能存在的主要区别:很少有一种使用Perl做任何事情的标准方法.从一个对另一种语言的对象感到舒服的人开始,我猜想Conway现在稍微过时的面向对象Perl的最有趣的事情是看着他逐渐开发出不同的方式来添加你一直认为理所当然的OOP功能.
我自己喜欢Perl OOP的基本blessed-hash风格,但你需要了解它的封装非常弱,并且虽然方法继承有效,但通常没有数据继承.广泛使用的还有一些相当流行的技巧,例如使用AUTOLOAD例程自动生成访问器.
至于你可以阅读的主题,不要忽视Perl附带的在线文档:perldoc.请注意顶部的"教程"部分.如果您对Perl的引用和数据结构生疏,请阅读前两个:perldoc perlreftut和perldoc perldsc.在列表中,您将看到多个OOP教程.这些主要是关于简单的基于href的对象,尽管存在一些严重的奇怪之处,例如Tom Christiansen的基于闭包的对象的方案位于底部:perldoc perltoot
如果你对人们做某事的一些新方法感兴趣,你可能想要开始使用Moose,它应该是最接近perl6对象的同时仍然编写perl5代码.顺便说一下:忽略那里的"后现代"这个词,这是一个没有任何意义的愚蠢笑话.
如果你对内外对象感兴趣(它有防弹封装,但可能有点讨厌调试 - 你不能只在对象上使用Data :: Dumper来获取它的状态),我建议从这个perl5维基页面开始.
查看:
Perl最佳实践 - 建议的最佳实践的精彩集合.即使您不采用它们,对建议背后的推理的讨论也是有价值的.
Perl测试:开发人员的笔记本 - 提供对Perl测试功能的出色报道.
面向对象的Perl - 一本关于如何使用和滥用Perl对象系统的优秀书籍.这本书有点过时了.它早于对象(时间已经过去)和Moose,这两个都是OOP的重要发展.如果你有一大堆旧的OO Perl需要维护,这本书可能会派上用场.
PerlMonks - 一个非常方便的Perl聚焦网站,具有非常慷慨和合议的语气.一个寻求帮助和反馈的好地方.它已经运作多年,所以还有大量的帖子存档.