返回首页 - Notes - 2014

Perl 相比其他语言的不同之处


引子

我大学期间,接触的第一门脚本是 Python,然后是 Perl,再然后是 Ruby,最后才是 PHP,当时特享受书写 Perl 代码的那种灵活和自由

Perl 的嫡系后代,一个是 PHP,另一个可以说就是 Ruby 了。PHP 继承了大部分语法,除了 正则;而 Ruby 只继承了小部分语法,但是包括 正则

PHP 可以说刚开始就是一个 Perl 专用于 Web 开发的变体,语法和思想绝大部分都借鉴自 Perl

Ruby 则是融合 Perl 语法和 Lisp 精髓于一身,专为解除程序员身上的束缚而设计

虽说经过这么多年各自的演进,这些语言之间的区别越来越大,但总的来说相似点还是很多的,本文就基于这些共同点复习一下 Perl 的基础知识


语言基础

Perl 有乘幂操作符 **Ruby 也有,而 PHP 直到 5.6 才支持,之前用的是 pow 函数(PHP5.6 新增了对 ****= 的支持)

Perl 允许在数字中使用下划线以连缀太长的数字字面量,如 123_456_78Ruby 也支持这样的用法)

比较操作符部分,Perl 独有 ltleeqgtgene,而 PHP 则多出一个 ===!==JavaScript 也有 ===!==

取数组最后一个元素的下标值,Perl 写作 #arr,而 PHPRuby 等价的写法分别为 count(arr) - 1arr.length - 1,倒是 Lua 有相同的写法

连接两字符串,PerlPHP 都用 . 号进行连缀,这也是 PerlPHP 在添加 OOP 支持时只能忍痛选择 -> 的无奈了:. 号被占用了

Ruby 连接两字符串使用的是 + 号,而且非字符串数据需要先转成字符串才能连接,如 puts 123.to_s + "\n"

需要注意的是,PerlPHP 中,数值和其后的 . 号连接符不能紧挨着,不然会出错。如 123."\n" 是非法的,而 123 ."\n" 正确


date : 2014-05-03、2014-05-04、2014-11-21