perl中的字符串比较

发布时间:2019-12-29编辑:脚本学堂
测试一个perl代码,结果不对,错误原因:字符串比较时直接用了>。后来才想到这个问题。复制一下perldoc的内容,以免下次又忘记了。

测试一个perl代码,结果不对,错误原因:字符串比较时直接用了" >" ,这是不对的。
后来才想到这个问题。复制一下perldoc的内容,以免下次又忘记了。

这种情况,算不算perl的dirty detail 呢。
Relational Operators
Binary "<" returns true if the left argument is numerically less than the right argument.
Binary ">" returns true if the left argument is numerically greater than the right argument.
Binary "<=" returns true if the left argument is numerically less than or equal to the right argument.
Binary ">=" returns true if the left argument is numerically greater than or equal to the right argument.
Binary "lt" returns true if the left argument is stringwise less than the right argument.
Binary "gt" returns true if the left argument is stringwise greater than the right argument.
Binary "le" returns true if the left argument is stringwise less than or equal to the right argument.
Binary "ge" returns true if the left argument is stringwise greater than or equal to the right argument.

另外,貌似数值的比较可以用 "gt, lt, ge, le"。例如:
print (($ARGV[0] gt $ARGV[1])?1:0);
print "t";
print (($ARGV[0] > $ARGV[1])?1:0);
用个位数作为命令行参数,输出的两个数字是一致的。但是如果有不同位数的数字,或者有负数,则结果就可能不相同了。

备注:
perl代码写惯了,写C++时候不由自主的用'#'注释;
C++用久了,在用perl时,又不由自主用 '//' 注释,想打印上来就敲下 'cout <<',然后再意识到不对。
纠结啊。