在哪里可以找到一些很好的资源来学习Perl 5.10的新功能?

时间:2020-03-06 15:05:34  来源:igfitidea点击:

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

任何链接将不胜感激。

-fREW

解决方案

perldelta联机帮助页中包含所有细节。有一个简短(但内容丰富)的幻灯片演示文稿,Perl 5.10专为那些并不完全疯狂的人而设计。并在此问题上进行了很好的PerlMonks讨论。

我发现这篇文章很有用。

这一节更着重于5.10高级正则表达式。

以及Perl 5.10的初学者介绍。

最后,这份精彩的摘要说明了为什么我们应该开始使用Perl 5.10,并从中提取了以下内容:

  • 状态变量不再具有外部卷曲块的作用域变量,或者顽皮的我的$ f(如果有0技巧)(后者现在是语法错误)。
  • 已定义-或者不再有$ x =已定义$ y? $ y:$ z,我们可以改写$ x = $ y // $ z。
  • regexp的改进dave_the_m完成了许多清理内部工作的工作,这为demerphq添加各种新颖的功能铺平了道路。
  • 较小的可变占用空间Nicholas Clark致力于SV,AV,HV和其他数据结构的实现,以将其大小减小到碰巧碰到32位架构上的最佳位置
  • 较小的恒定子足迹Nicholas Clark减小了恒定子的大小(例如,使用恒定FOO => 2)。加载类似POSIX的模块时,结果很重要。
  • 现在,我们可以说出是否已堆叠文件测试(-e -f -x $ file)。 Perl 6应该允许这样做,但是他们朝着不同的方向发展。那好吧。
  • 词法$ _允许我们嵌套$ _(不使用local)。
  • _ prototype我们现在可以使用prototype声明一个子对象。如果不带任何参数调用,则以$填充(可以更干净地替换内建函数)。
  • 在列表中的x运算符上,我们现在可以说出我的@arr = qw(xyz)x 4. 8)。
  • 受Perl 6启发,切换一个真正的开关/给定结构
  • 智能匹配运算符(~~)与开关配合使用
  • 闭包改进dave_the_m彻底修改了闭包处理代码,以修复许多错误行为和内存泄漏。
  • 更快的Unicode lc,uc和/ i在Unicode字符串上更快。对UTF-8缓存的改进。
  • 改进的排序在可能的情况下执行就地排序,而不是使用临时排序。可以递归调用Sort函数:可以对树进行排序
  • 在无效上下文中映射不再是邪恶的。仅在道德上。
  • 创建匿名列表和哈希时使用的操作码更少。更快的猫咪!
  • 污点改进标记了更多可能污点的东西(例如sprintf格式)
  • 删除$#和$ *远距离执行较少的操作
  • 删除了perlcc和JPL这些东西只是吸引人的磁铁,没有人关心它们。

正则表达式的改进包括命名捕获:在这里查看

关于Perl 5.10的Perl技巧中有很多文章:

  • Perl 5.10中的正则表达式
  • Perl 5.10:定义或者状态
  • 切换(给定时间)
  • Perl 5.10和Hash :: Util :: FieldHash
  • Perl 5.10中的智能匹配

在Perl Training Australia的演示文稿页面上,我还有Perl 5.10幻灯片中的新增功能,但是由于它们是在5.10发布之前编写的,因此有些事情可能有所变化。我相信rjbs针对不完全疯狂的人的Perl 5.10现在涵盖了我的幻灯片曾经使用过的所有内容。

一切顺利,

保罗

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

请参阅Ricardo Signes的幻灯片,以其出色的" Perl 5.10完全不疯狂的人"。

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

学习Perl,第五版及更高版本,发现5.10. 除此之外,其他人提到的资源(包括perldelta)都非常不错。我写了一些有关The Effective Perler功能的文章。

最好的入门方法是选择一个有趣的功能并试用它。这就是我们所找到的指南作者的想法。这就是我们真正应该开始学习几乎所有语言的任何方式的方式。