Perl – Ruby映射?
我参与了一个新的项目,其中Perl是必须的。 我来自一个很好的Ruby基础,想要在Perl和Ruby之间快速介绍或映射,因为我听说Perl和Ruby的语法非常接近(对function一无所知)。
- 你有什么建议吗?
- 你推荐什么伟大的Perl书作为扩展参考?
- 现在常用的Perl版本是什么?
我是Nathan的第二本书,虽然我也会提到Beginning Perl 。 两个额外的function是(1)它可以在第一版中自由(和合法) 在线获得 (注意:这个网站现在正在暂停,我不确定这是否是暂时的)和(2)它涵盖的数量相同作为学习Perl和中级Perl的结合。 一个骗局是,它有时会更加基本,你可能想要。 ( 学习Perl的速度更快,假设更多 – 这可能是一件好事。)
你也可以看一下:来自Ruby的网站上来自Perl的Ruby。 只需反过来考虑它。
在版本方面,5.10.1是稳定的,但你会遇到一个范围。 我怀疑,大多数情况下你会发现5.8.x及以上。 (正如Ruby 1.9.1稳定,但你会发现很多地方仍在使用1.8.6或更高版本。)
因为我有点朝相反的方向发展(我知道Perl相当不错,而且我越来越多地使用Ruby),我可以提到一些对我有用的东西:
- 在Perl中,您可以在字符串和数字之间进行自动转换(并且您不需要通过使用
.to_f
或使一个项目成为浮动来显式请求浮点结果)。 - 分号对于Perl中的end语句不是可选的。 类似地,Perl中的括号在Ruby中比在Ruby中更少。 (这会很快变得复杂,但是例如,您必须在条件或
while
块中使用括号进行测试。) -
0
(字符串,整数和浮点数),undef
和空字符串在布尔测试中评估为false
。 - 没有单独的布尔
false
。 - 您可以使用符号区分数据类型:
$foo
是标量;@foo
是一个数组;%foo
是一个哈希值。 (特别是数组会让你烦恼:它们不是实例变量。) - 您需要使用
my
关键字在Perl中显式定义项目。 - Perl中的数组在组合时会自动展平。 (这经常让我咬ruby。)
- 上下文,上下文,上下文。 在Perl中,你的代码实际上做了大量的工作取决于你理解你所处的上下文。这里有一个开始的链接 ,但它是一个很大的角落,有很多角落和缝隙。
(请注意,我没有提到房间里的1000磅大猩猩.OO是Perl可以做到的一部分,但它不是Perl的中心,就像在Ruby中一样。)
版本
在Perl Survey 2007 ***中,大多数Perl编码器使用Perl 5.8,87%至少在某些时候使用5.8.x,5.8.8是最常见的单一版本。 少数人至少在一些项目中使用5.6.x,而较小(但偶尔相当强烈)的少数民族使用5.005。 从那时起,Perl 5.10已经发布,目前还不清楚采用率是多少; 很多企业可能保守并且运行5.8.8或5.8.9,但许多你称之为“突出黑客”的企业正在使用5.10.1甚至有时需要它的function。
参考
- 对于任何具有以前编程经验的人来说, Perl编程是一个赢家,他希望能够快速掌握Perl的速度。 当前版本是第三版,它与Perl 5.6.0相对应(不幸)。
- 还推荐了系列Learning Perl , Intermediate Perl , Mastering Perl ; 学习Perl的开始相当缓慢,因为它针对的是初学者,但它最终涵盖了该语言的所有主要function,包括2000年编程Perl最后修订时不存在的一些function。
- perldocs文档。 请不要忽视perldocs。 主索引是
perldoc perl
,或者您可以在perldoc.perl.org在线阅读 。 这些与Programming Perl几乎一样好,因为实际上该书中的一小部分来自Perldocs。 我建议至少彻底浏览perlsyn,perlop,perlrun,perlvar,perlre,perlobj,perlmod,perluniintro,perlreftut和perldsc。 直接阅读perlfunc一次也不是一个坏主意。 - 有效的Perl编程是我一直推荐的一本书,用于学习如何使用Perl框架来解决问题。 它的1998年出版日期限制了它的实用性,但我仍然认为它值得一读 – 幸运的是,brian d foy和Josh McAdams正在制作一个更新的版本,因为(我想 – 不要相信我太过分了)2010年3月。[ 第二版现在在这里 – 布莱恩 ]
- Perlmonks是一个很好的资源,特别是如果你记得使用搜索function。 在那里已经提出并回答了很多问题,并为后代索引了最佳答案,以及书籍和在线常见问题解答等资源列表。
***:我很乐意提供2007年Perl调查的链接,但不幸的是,perlsurvey.org域名被允许失效。 可以在github上找到结果PDF的副本,并且主要原始数据在CPAN上作为Data::PerlSurvey2007
。
你有什么建议吗?
Perl.org是一个获得一些资源的好网站
你推荐什么伟大的Perl书作为扩展参考?
编程Perl和学习Perl非常好,但也看看这里
现在常用的Perl版本是什么?
取决于您的平台,请看这里
人们一直告诉我Picking Up Perl已经过时了,但它们是正确的,但它是如此简洁的介绍,我建议阅读它,然后直接跳到Intermediate Perl和Perl Best Practices以及Perl Cookbook 。 如果你通过具体的,一口大小的例子更好地学习,那本食谱会很棒。
此外,我真的建议在做其他任何事情之前阅读常见问题列表 。
我推荐“Programming Perl”,“Perl Best Practices”和“Perl Cookbook”。
“PBP”这本书很好,不是因为它教你规则,而是因为它让你停下来思考为什么你应该以某种方式做事,并在你决定偏离康威的推荐路径时做出明智的决定。
至于文档,我经常使用CPAN的文档,因为它们是最新的并提供超链接,这是我们无法从驱动器上的本地perldoc获得的。
与Perl相比,我第一次使用Ruby时喜欢Ruby的一件事就是gem与CPAN。 保持一组gem最新似乎比一组基于CPAN的模块容易得多。
而且,就像思南所说,常见问题解答很棒。 我已多次阅读并重读它们,因为知识很好,可以保留在脑海中。
而且,虽然它们可能相当直率,但PerlMonks是一个很好的资源。 简单地搜索和阅读他们推荐的事情可以将你的Perl意识提升几个层次,即使你没有直接提问他们。
并且,在僧侣的方式,考虑Perl的哈希并学习切片。 他们是shiz。