比较运算符
bash:
用 -eq -ne来作为算数比较,而用==来比较字串。bash也能做一些类似的根据运算符号来用同一个数据做不同的运算。
perl:
这一点在perl中得到我觉得很好的修改。perl中== 就是用来比较数值的, eq就是用来表示字串的。perl之所以这么设计是因为perl中的数据是有类型的,但是运算却是弱类型的,也就是说对相同的数据,你可以参与不同的运算。这个我觉得是脚本语言很重要的一点。
数组
bash
初始化之间用换括号,空格分隔。
声明一般用declare -a array
求元素个数用${#array[*]}
perl:
直接用圆括号初始化,但是逗号分隔,分号结束。
求元素个数scalar @array
最后一个元素下标$#array
上面两个方法涉及到perl中的上下文概念。
scalar是perl中的一个内置函数,表示在上下文环境中求值。
所以用scaler @array来计算数组的长度
输入参数保存在内建变量@ARGV
中
映射表
bash
声明declare -A ass-array
perl
my %hash = ( “one” => “first”, “two”=>”second”)
看的出来语言表达越来越直观
双引号和单引号
bash:
用单引号来避免对特殊字符的转义
perl:
同样同单引号来避免特殊字符的转义
子程序返回值
bash
用$?
perl
和bash一样