perl里面eq和==有什么区别?

qxxat2007 2012-07-13 11:47:03
今天编程,遇到一个逻辑判断的问题,$a==$b 和 $a eq $b可能得到不同的bool值,请教大家,perl里面eq和==有什么区别?
...全文
1606 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shijinpeng_2012 2012-08-29
  • 打赏
  • 举报
回复
在perl 里面 == 号是整数比较操作符,eq是字符串的比较。
Gloveing 2012-08-28
  • 打赏
  • 举报
回复
Perl字符串比较,不要用==,要用eq
即使是整形,也尽量用eq,少用==
Binary “==” returns true if the left argument is numerically equal to the right argument.
Binary “eq” returns true if the left argument is stringwise equal to the right argument.
xiyoulaoyuanjia 2012-08-28
  • 打赏
  • 举报
回复
Quoted from perldoc:

Binary "==" returns true if the left argument is numerically equal to the right argument.
Binary "eq" returns true if the left argument is stringwise equal to the right argument.

测试下应该没问题的~~
手无护鸡之力 2012-08-28
  • 打赏
  • 举报
回复
我知道Tcl的:

if { 0 eq 0.0 } {
puts Yes
}
无输出
if { 0 == 0.0 } {
puts Yes
}
输出Yes
senduo 2012-07-25
  • 打赏
  • 举报
回复
eq 比较字符串
== 比较数字
锆前辈 2012-07-23
  • 打赏
  • 举报
回复
eq 是字符串比较,== 是数字比较,两者都代表相等的意思,所用于上下文不一样。
zydscaline 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:

貌似 eq 按字符串比较,== 按数字比较


哦?我做的一个测试,$a1 = 0; $a2 = 0; $b1 = 0000D0EF1A5C866991B38A1B6940B490;$b2 = 0000F310E80B9AEED88F65F03A67CB38
if(!($a1 == $a2)&&($b1 == $b2)){}#结果if判断的值为……
[/Quote]$b1和$b2是字符吧,用eq啊
qxxat2007 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

貌似你的例子有问题吧?
给出完整的代码、正确的输入、输出
[/Quote]

唔。原始数据比较麻烦,我自己再测试一下,有了答案回来贴上
bugs2k 2012-07-13
  • 打赏
  • 举报
回复
貌似你的例子有问题吧?
给出完整的代码、正确的输入、输出
qxxat2007 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

貌似 eq 按字符串比较,== 按数字比较
[/Quote]

哦?我做的一个测试,$a1 = 0; $a2 = 0; $b1 = 0000D0EF1A5C866991B38A1B6940B490;$b2 = 0000F310E80B9AEED88F65F03A67CB38
if(!($a1 == $a2)&&($b1 == $b2)){}#结果if判断的值为0
而把==改写为eq,则if判断为1;很多测试数据,目前发现这一组有问题
bugs2k 2012-07-13
  • 打赏
  • 举报
回复
貌似 eq 按字符串比较,== 按数字比较

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧