设为首页 收藏本站
查看: 956|回复: 0

[经验分享] (zz)从 Perl 到 Ruby

[复制链接]

尚未签到

发表于 2015-12-26 02:19:30 | 显示全部楼层 |阅读模式
  source: http://www.ruby-lang.org/zh_CN/documentation/ruby-from-other-languages/to-ruby-from-perl/
  

  Perl is awesome. Perl’s docs are awesome. The Perl community is … awesome.  However, the language is fairly large and arguably complex. For those Perlers who long for a simpler time, a more orthogonal language, and elegant OO features built-in from the beginning, Ruby may be for you.
   Similarities
   As with Perl, in Ruby,...

  • You’ve got a package management system, somewhat like CPAN (though it’s called RubyGems)
  • Regexes are built right in. Bon appétit!
  • There’s a fairly large number of commonly-used built-ins.
  • Parentheses are often optional
  • Strings work basically the same.
  • There’s a general delimited string and regex quoting syntax similar to Perl’s (looks like %q{this (single-quoted)}, or %Q{this (double-quotish)}, and %w{this for a single-quoted list of words}. You %Q|can| %Q(use) %Q^other^ delimiters if you like).
  • You’ve got double-quotish variable interpolation, though it "looks #{like} this" (and you can put any Ruby code you like inside that #{}).
  • Shell command expansion uses `backticks`.
  • You’ve got embedded doc tools (Ruby’s is called rdoc).
   Differences
   Unlike Perl, in Ruby,...

  • You don’t have the context-dependent rules like with Perl.
  • A variable isn’t the same as the object to which it refers. Instead, it’s always just a reference to an object.
  • Although $ and @ are used as the first character in variable names sometimes, rather than indicating type, they indicate scope ($ for globals, @ for object instance, and @@ for class attributes).
  • Array literals go in brackets instead of parentheses.
  • Composing lists of other lists does not flatten them into one big list. Instead you get an array of arrays.
  • It’s def instead of sub.
  • There’s no semicolons needed at the end of each line. Incidentally, you end things like function definitions, class definitions, and case statements with the end keyword.
  • Objects are strongly typed. You’ll be manually calling foo.to_i, foo.to_s, etc., if you need to convert between types.
  • There’s no eq, ne, lt, gt, ge, nor le.
  • There’s no diamond operator. You usually use IO.some_func instead.
  • The fat comma is only used for hash literals.
  • There’s no undef. In Ruby you have nil. nil is an object (like anything else in Ruby). It’s not the same as an undefined variable. It evaluates to false if you treat it like a boolean.
  • When tested for truth, only false and nil evaluate to a false value. Everything else is true (including 0, 0.0, and "0").
  • There’s no PerlMonks. Though the ruby-talk mailing list is a very helpful place. And we’ve also got a wiki and a faq.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156348-1-1.html 上篇帖子: perl解析xml-XML::Simple/XMLin 下篇帖子: [转
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表