关于String compare in Perl with "eq" vs "=="的公认答案
上面说First, eq is for comparing strings; == is for comparing numbers.
"==进行数字比较:它将两个参数转换为一个数字,然后进行比较。“
eq进行字符串比较:这两个参数必须在词汇上匹配(区分大小写)。
您只能使用eq来比较字符串,但是
eq和==都适用于比较数字。
数字是字符串的子集,所以我只是不明白为什么要使用==
为什么要使用==来比较所有的数值,而不是使用eq呢?
发布于 2013-08-07 03:07:51
$a = "3.0";
print "eq" if $a eq "3"; # this will not print
print "==" if $a == 3; # this will print3.0在数字上等于3,所以如果您希望它们相等,请使用==。如果要进行字符串比较,则"3.0"不等于"3",因此在本例中将使用eq。最后,==是一个比eq更便宜的操作。
发布于 2013-08-07 03:46:02
字符串比较是完全不同的,特别是与数字。
@s_num=sort {$a <=> $b} (20,100,3); # uses explicit numeric comparison
print "@s_num\n"; # prints 3 20 100, like we expect
@s_char=sort (20,100,3); # uses implicit string comparison
print "@s_char\n"; # prints 100 20 3, not so good.-Tom威廉斯
https://stackoverflow.com/questions/18093890
复制相似问题