Perl – Ruby映射?

我参与了一个新的项目,其中Perl是必须的。 我来自一个很好的Ruby基础,想要在Perl和Ruby之间快速介绍或映射,因为我听说Perl和Ruby的语法非常接近(对function一无所知)。

  1. 你有什么建议吗?
  2. 你推荐什么伟大的Perl书作为扩展参考?
  3. 现在常用的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),我可以提到一些对我有用的东西:

  1. 在Perl中,您可以在字符串和数字之间进行自动转换(并且您不需要通过使用.to_f或使一个项目成为浮动来显式请求浮点结果)。
  2. 分号对于Perl中的end语句不是可选的。 类似地,Perl中的括号在Ruby中比在Ruby中更少。 (这会很快变得复杂,但是例如,您必须在条件或while块中使用括号进行测试。)
  3. 0 (字符串,整数和浮点数), undef和空字符串在布尔测试中评估为false
  4. 没有单独的布尔false
  5. 您可以使用符号区分数据类型: $foo是标量; @foo是一个数组; %foo是一个哈希值。 (特别是数组会让你烦恼:它们不是实例变量。)
  6. 您需要使用my关键字在Perl中显式定义项目。
  7. Perl中的数组在组合时会自动展平。 (这经常让我咬ruby。)
  8. 上下文,上下文,上下文。 在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 PerlIntermediate PerlMastering 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。