我参与了一个必须使用 Perl 的新项目。我来自一个很好的 Ruby 基础,并且想要快速介绍或映射 Perl 和 Ruby,因为我听说 Perl 和 Ruby 在语法上非常接近(对功能一无所知)。
- 你对我有什么建议吗?
- 您推荐哪本很棒的 Perl 书籍作为扩展引用?
- 目前常用的 Perl 版本是什么?
最佳答案
我支持 Nathan 的书籍推荐,不过我也会提到 Beginning Perl。两个额外功能是 (1) 它可以免费(合法)获得 online in its first edition (注意:该站点现在超时,我不确定这是否是暂时的)并且 (2) 它涵盖了与Learning Perl 和Intermediate Perl 合并。一个缺点是它有时比您想要的更基本。 (学习 Perl 速度更快,假设更多 - 这可能是一件好事。)
你也可以看看这个:To Ruby From Perl来自 Ruby 的网站。反过来想想。
就版本而言,5.10.1 是稳定的,但你会遇到一个范围。我怀疑大多数情况下您会发现 5.8.x 及更高版本。 (就像 Ruby 1.9.1 一样稳定,但您会发现很多地方仍在使用 1.8.6 或更高版本。)
由于我的方向有点相反(我对 Perl 相当了解,而且我越来越频繁地使用 Ruby),所以我可以提及一些对我来说很突出的事情:
- 在 Perl 中,您可以在字符串和数字之间自动转换(并且您不需要通过使用
.to_f
或将一个项目设为 float 来明确请求 float 结果)。 - 分号不是在 Perl 中结束语句时是可选的。类似地,括号在 Perl 中比在 Ruby 中更少地是可选的。 (这很快就会变得复杂,但是例如,您必须在条件或
while
block 中使用括号进行测试。) 0
(字符串、整数和 float )、undef
和空字符串在 bool 测试中评估为false
。- 没有单独的 bool 值
true
和false
。 - 你用符号来区分数据类型:
$foo
是一个标量;@foo
是一个数组;%foo
是一个散列。 (尤其是数组会让您感到厌烦:它们不是实例变量。) - 您需要在 Perl 中使用
my
关键字显式限定项目的范围。 - Perl 中的数组在组合时会自动展平。 (这在 Ruby 中一直困扰着我。)
- 上下文,上下文,上下文。在 Perl 中,代码实际执行的大量操作取决于对所处上下文的理解。这里是 a link首先,但这是一个有很多角落和缝隙的大话题。
(请注意,我没有在房间里提到 1000 磅的 gorilla 。面向对象是 Perl 的一部分,但它不是 Perl 的核心,而在 Ruby 中。)
关于ruby - Perl - Ruby 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582497/