ruby - Perl - Ruby 映射?

标签 ruby perl

我参与了一个必须使用 Perl 的新项目。我来自一个很好的 Ruby 基础,并且想要快速介绍或映射 Perl 和 Ruby,因为我听说 Perl 和 Ruby 在语法上非常接近(对功能一无所知)。

  1. 你对我有什么建议吗?
  2. 您推荐哪本很棒的 Perl 书籍作为扩展引用?
  3. 目前常用的 Perl 版本是什么?

最佳答案

我支持 Nathan 的书籍推荐,不过我也会提到 Beginning Perl。两个额外功能是 (1) 它可以免费(合法)获得 online in its first edition (注意:该站点现在超时,我不确定这是否是暂时的)并且 (2) 它涵盖了与Learning PerlIntermediate Perl 合并。一个缺点是它有时比您想要的更基本。 (学习 Perl 速度更快,假设更多 - 这可能是一件好事。)

你也可以看看这个:To Ruby From Perl来自 Ruby 的网站。反过来想想。

就版本而言,5.10.1 是稳定的,但你会遇到一个范围。我怀疑大多数情况下您会发现 5.8.x 及更高版本。 (就像 Ruby 1.9.1 一样稳定,但您会发现很多地方仍在使用 1.8.6 或更高版本。)

由于我的方向有点相反(我对 Perl 相当了解,而且我越来越频繁地使用 Ruby),所以我可以提及一些对我来说很突出的事情:

  1. 在 Perl 中,您可以在字符串和数字之间自动转换(并且您不需要通过使用 .to_f 或将一个项目设为 float 来明确请求 float 结果)。
  2. 分号不是在 Perl 中结束语句时是可选的。类似地,括号在 Perl 中比在 Ruby 中更少地是可选的。 (这很快就会变得复杂,但是例如,您必须在条件或 while block 中使用括号进行测试。)
  3. 0(字符串、整数和 float )、undef 和空字符串在 bool 测试中评估为 false
  4. 没有单独的 bool 值 truefalse
  5. 你用符号来区分数据类型:$foo 是一个标量; @foo 是一个数组; %foo 是一个散列。 (尤其是数组会让您感到厌烦:它们不是实例变量。)
  6. 您需要在 Perl 中使用 my 关键字显式限定项目的范围。
  7. Perl 中的数组在组合时会自动展平。 (这在 Ruby 中一直困扰着我。)
  8. 上下文,上下文,上下文。在 Perl 中,代码实际执行的大量操作取决于对所处上下文的理解。这里是 a link首先,但这是一个有很多角落和缝隙的大话题。

(请注意,我没有在房间里提到 1000 磅的 gorilla 。面向对象是 Perl 的一部分,但它不是 Perl 的核心,而在 Ruby 中。)

关于ruby - Perl - Ruby 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582497/

相关文章:

perl - APT 错误 : Depends: perl (= 5. 14.2-6ubuntu2) 但要安装 5.14.2-6ubuntu2.1

ruby - Ruby 中的规范文件路径

ruby - 为什么 Ruby 不注入(inject)返回枚举器?

ruby-on-rails - 在 Rails 应用程序中查找未使用的代码

ruby-on-rails - Rails + Devise 嵌套注册表未定义方法 'build_address'

perl - 在Perl中为聊天室编程时,客户端出现问题了吗?

perl - DBIx::Class 使用函数更新 Inflate 列

javascript - 在 Rails 应用程序上无法看到我使用 google map 添加的位置的 map

perl - 新的 perl 对象覆盖先前对象的数据

regex - Perl 中为什么需要括号来保存正则表达式的结果?