我刚刚回到Perl编程中,所以我很抱歉这是一个简单/愚蠢的问题.
我的If语句返回true(永远不会去其他地方),我不确定为什么.例如,此代码永远不会打印"getshere":
@showName = ("Matt","Matt","Matt","Gym","Gym");
$counter=0;
foreach (@showName)
{
if ($showName[$counter]==$showName[$counter+1])
{
print "$showName[$counter] equ $showName[$counter+1]\n";
}
else
{
print "getshere";
}
$counter++;
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我我做错了什么吗?
谢谢!
==是数字比较,字符串like 'Matt'和'Gym'all都有数值0,所以它们都是==相互的.对于字符串比较,请eq改用:
if ($showName[$counter] eq $showName[$counter+1])
Run Code Online (Sandbox Code Playgroud)
(顺便提一下,我建议use warnings;在脚本开头附近添加警告.如果你这样做了,你会收到一条有用的消息,警告你正在对非数字值应用数字相等测试.)
| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |