哪些是学习Perl 5.10新功能的好资源?

时间:2008-10-03 19:34:17

标签: perl perl5.10

直到最近我才意识到Perl 5.10具有重要的新功能,我想知道是否有人能给我一些很好的资源来学习这些。我在Google上搜索过它们,我找到的只是一些幻灯片和快速概述。如果他们有更多的解释,一些功能(至少对我来说)会很好。

任何链接都将受到赞赏。

-fREW

6 个答案:

答案 0 :(得分:15)

perldelta联机帮助页包含了所有细节。有一个简短的(但内容丰富的)幻灯片演示文稿Perl 5.10 for people who aren't totally insane。这个问题很好PerlMonks discussion

答案 1 :(得分:15)

我发现这个article很有用。

one更侧重于5.10高级正则表达式。

还有A beginners' Introduction to Perl 5.10

最后,这个优秀的summary解释了为什么你应该开始使用Perl 5.10并从中提取以下内容:

  • 状态变量没有更多具有外部花瓣块的范围变量,或者顽皮的我的$ f如果0技巧(后者现在是语法错误)。
  • 已定义 - 或更多$ x =已定义$ y? $ y:$ z,你可以写$ x = $ y // $ z代替。
  • regexp改进dave_the_m完成了很多工作来清理内部,这为demerphq添加各种新的酷东西铺平了道路。
  • 更小的变量足迹Nicholas Clark致力于SV,AV,HV和其他数据结构的实现,以便将其大小减小到恰好在32位架构上达到最佳点的程度
  • 较小的恒定子足迹尼古拉斯·克拉克减小了常数子的大小(如使用常数FOO => 2)。加载像POSIX这样的模块时的结果很重要。
  • 堆叠的文件测试现在可以说是(-e -f -x $ file)。 Perl 6应该允许这样做,但他们朝着不同的方向前进。那好吧。
  • lexical $ _允许你嵌套$ _(不使用本地)。
  • _ prototype你现在可以用原型声明一个sub。如果没有参数调用,可以使用$ (允许您更干净地替换内置函数)。
  • 列表中的
  • x运算符现在可以说我的@arr = qw(xyz)x 4.(更新:此功能在blead中实现后被反向移植到5.8代码库,这是Somni注意到它可用的方式在5.8.8)。
  • 切换一个真正的开关/给定结构,灵感来自Perl 6
  • 智能匹配运营商(~~)使用开关
  • 闭包改进dave_the_m彻底修改了闭包处理代码,以修复许多错误行为和内存泄漏。
  • 更快的Unicode lc,uc和/ i在Unicode字符串上更快。对UTF-8缓存的改进。
  • 在可能的情况下执行改进的排序就地排序,而不是使用临时排序。可以递归调用排序函数:您可以对树进行排序
  • 在void上下文中的map不再是邪恶的。只有在道德上。
  • 用于创建匿名列表和哈希的较少操作码。更快的猫咪!
  • 污染改进更多可能被污染的东西被标记为(例如sprintf格式)
  • $#和$ *已删除距离较少的操作
  • perlcc和JPL删除这些东西只是虫子磁铁,没有人关心它们。

答案 2 :(得分:13)

Perl Tips中有关于Perl 5.10的一系列文章:

还有我的 Perl 5.10 中的新功能幻灯片Perl Training Australia's presentations page,但由于它们是在5.10发布之前编写的,因此有些内容可能会略有改变。我相信rjbs'Perl 5.10 for people who aren't totally insane现在涵盖了幻灯片过去的所有内容。

一切顺利,

强制性偏见披露:我写了几篇本文中提到的所有资源,

答案 3 :(得分:7)

Learning Perl, Fifth Edition 以及后来的scover 5.10。除此之外,其他人提到的资源,包括perldelta,都非常好。我写了几篇关于The Effective Perler的一些功能的文章。

入门的最佳方式是选择一个有趣的功能并玩弄它。这就是你找到的指南的作者如何发现它。这就是你真正开始学习任何语言的方式。

答案 4 :(得分:5)

正则表达式改进包括命名捕获:Look Here

答案 5 :(得分:3)

请参阅Ricardo Signes的幻灯片,了解他出色的“Perl 5.10对于那些并非完全疯狂的人”。

http://www.slideshare.net/rjbs/perl-510-for-people-who-arent-totally-insane