直到最近我才意识到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位架构上达到最佳点的程度
较小的恒定子足迹尼古拉斯克拉克减小了常数子的大小(如使用常数FOO => 2).加载像POSIX这样的模块时的结果很重要.
堆叠的文件测试你现在可以说是(-e -f -x $ file).Perl 6应该允许这样做,但他们朝着不同的方向前进.那好吧.
词法$ _允许你嵌套$ _(不使用本地).
_ 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删除这些东西只是bug磁铁,没有人关心它们.
关于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对于那些并非完全疯狂的人现在涵盖了我以前的幻灯片.
祝一切顺利,
保罗
强制性偏见披露:我写了几篇本文中提到的所有资源,
学习Perl,第五版和后来的scover 5.10.除此之外,其他人提到的资源,包括perldelta,都非常好.我写了一些关于 The Effective Perler的一些功能的文章.
入门的最佳方式是选择一个有趣的功能并玩弄它.这就是你找到的指南的作者如何发现它.这就是你真正应该开始学习任何语言的方法.
正则表达式改进包括命名捕获:看这里