代码之家  ›  专栏  ›  技术社区  ›  Bostone

我如何才能跟上Perl最新的面向对象功能的发展?[关闭]

  •  18
  • Bostone  · 技术社区  · 14 年前

    我已经有8年没有做过Perl了,现在我要进入一个大量使用面向对象Perl的项目,所以我需要重新分析我的Perl技能并快速完成它。在过去的几年中,我主要做了各种Java开发和一些PHP。我非常擅长OO,而且在任何程度上我都不是一个新手程序员。

    所以这里有一个问题:你们能推荐哪些最好的资源/站点/实践/方法/书籍来学习我生疏的Perl技能和学习Perl的“新方法”?您的建议将不胜感激。

    另外,我研究了一些以前的答案。我想强调的是,我并不是在寻找新手书籍/资源(语法、核心原则等),而是特别是那些涉及在用Perl编程时不存在的OOP功能的书籍/资源(或者我当时可能忽略了它)。

    谢谢大家的建议和建议。经过深思熟虑,我选择了@mbo的答案,因为它是第一次提到驼鹿,我到目前为止真的很喜欢。

    6 回复  |  直到 14 年前
        1
  •  21
  •   MBO    14 年前

    我现在不写Perl代码(目前我用其他语言工作),但我经常读这个站点: http://www.modernperlbooks.com/mt/ . 也检查 Moose 在Perl中定义对象的新方法

        2
  •  21
  •   Doc Brown    14 年前

    "Higher order Perl" 可能对你感兴趣。最棒的是,它是免费的。

        3
  •  21
  •   Sinan Ünür    14 年前

    嗯,首先 Higher-Order Perl 很好,但这是关于函数式编程,而不是对象。

    Perl Best Practices 是一本优秀的书,但它有局限性,其中之一是康威建议使用自己的 Class::Std 做由内向外的物体模块,一般的共识是(1)如果你要做由内向外的物体, Object::InsideOut Class::InsideOut 是更好的方法(2),无论如何,使用基于“驼鹿”的对象是更好的方法。

    这说明了 这个 Java和Perl世界之间的主要区别:很少有一种用Perl做任何事情的标准方法。从一个对另一种语言中的物体感到舒服的人开始,我想康威最有趣的事情现在有点过时了。 Object Oriented Perl 正在观察他逐渐发展出不同的方式来添加你认为理所当然的OOP特性。

    我自己也喜欢PerlOOP的基本的幸运散列样式,但是您需要了解它的封装是非常脆弱的,并且当方法继承工作时,通常没有数据继承。在广泛使用中也有一些相当Perlish的技巧,例如使用 AUTOLOAD 例行公事。

    关于这个主题,请不要忽略Perl附带的在线文档: perldoc .请注意顶部的“教程”部分。如果您对Perl的引用和数据结构生疏,请阅读前两个: perldoc perlreftut perldoc perldsc . 在列表下面,您将看到多个OOP教程。这些主要是关于简单的基于href的对象,尽管其中有一些严重的奇怪之处,例如Tom Christiansen的基于闭包的对象方案位于下面: perldoc perltoot

    如果你对人们做事的一些新方式感兴趣,你可能想从 Moose 这应该是在编写Perl5代码时最接近Perl6对象的方法。顺便说一下:忽略“后现代”这个词,这是一个愚蠢的笑话,没有任何意义。

    如果您对由内向外的对象感兴趣(这些对象具有防弹封装,但可能对调试有点烦人),那么您不能只使用 Data::Dumper 关于对象的状态),我建议从这个开始 perl5 wiki page .

        4
  •  8
  •   daotoad    14 年前

    退房:

    • Perl Best Practices -建议的最佳实践集合。即使你不采纳它们,讨论建议背后的推理也是有价值的。

    • Perl Testing: A Developer's Notebook -提供了Perl测试功能的极好覆盖。

    • Object Oriented Perl -一本关于如何使用和滥用Perl对象系统的好书。这本书有点过时。它早于由内向外的物体(时间来了又去了)和驼鹿,这两个都是OOP的重要发展。如果您要维护大量的旧OOPerl,这本书很可能会派上用场。

    • PerlMonks -一个非常方便的Perl焦点站点,具有非常慷慨和学院风格。一个寻求帮助和反馈的好地方。它已经运作多年了,所以也有大量的职位档案。

        5
  •  4
  •   Alexandr Ciornii    14 年前

    使用 Perl::Critic . 阅读关于驼鹿和驼鹿的:声明。尝试 Padre . 读 Perl Iron Man Planet 聚合器。

        6
  •  2
  •   Community Paul Sweatte    7 年前

    如果您可以使用 moose >a>then that is the best way to go(imho).。

    有一本书可供选择: moose。Perl5的后现代对象系统

    这本书是优秀在线图书的印刷版 moose::manual

    /I3AZ/

    o去(imo)。

    有一本书可供选择: Moose. A postmodern object system for Perl 5

    Moose Book

    这本书是网上最好的印刷版 Moose::Manual

    /I3AZ/