Perl的比较操作符

perl的比较操作符和bash完全相反。数值比较采用符号,字符串比较采用字母。

1
2
3
4
5
6
7
8
9
数值     字符串      意义
-----------------------------
== eq 相等
!= ne 不等
< lt 小于
> gt 大于
<= le 小于或等于
>= ge 大于或等于
<=> cmp 返回值-1/0/1

最后一个<=>cmp用于比较两边的数值/字符串并返回状态码-1/0/1:

  • 小于则返回-1
  • 等于则返回0
  • 大于则返回1

对于<=>,如果比较的双方有一方不是数值,该操作符将返回undef。

几个示例:

1
2
3
4
5
6
7
8
9
10
11
35 != 30 + 5       # false
35 == 35.0 # true
'35' eq '35.0' # false(str compare)
'fred' lt 'bay' # false
'fred' lt 'free' # true
'red' eq 'red' # true
'red' eq 'Red' # false
' ' gt '' # true
10<=>20 # -1
20<=>20 # 0
30<=>20 # 1