比较运算符

Perl数值比较、字符串比较使用如下运算符。可见,和Shell的比较方式正好相反:Shell使用符号格式比较字符串,使用字符串格式比较数值。

数值     字符串      意义
-----------------------------
==       eq        相等
!=       ne        不等
<        lt        小于
>        gt        大于
<=       le        小于或等于
>=       ge        大于或等于
<=>      cmp       返回值-1/0/1

最后一个<=>cmp用于比较两边的数值或字符串,并根据比较结果返回-1、0或1。对于a <=> ba cmp b

  • a小于b时,返回-1
  • a等于b时,返回0
  • a大于b时,返回1

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

几个示例:

35 != 30 + 5       # false
35 == 35.0         # true
'35'   eq '35.0'   # false(str compare)
'fly'  lt 'bly'    # false
'fly'  lt 'free'   # true
'red'  eq 'red'    # true
'red'  eq 'Red'    # false
' '    gt ''       # true,空格大于空串
10<=>20            # -1
20<=>20            # 0
30<=>20            # 1