Perl:如果总是返回true

Perl:如果总是返回true,perl,if-statement,Perl,If Statement,我刚刚回到Perl编程,所以我想知道这是否是一个简单/愚蠢的问题 我的If语句返回true(从不转到else),我不确定为什么。例如,此代码从不打印“getshere”: 你能告诉我我做错了什么吗 谢谢大家! =是数值比较,像'Matt'和'Gym'这样的字符串都有数值0,所以它们彼此都是=。对于字符串比较,请改用eq: if ($showName[$counter] eq $showName[$counter+1]) (顺便说一句,我建议在脚本开头附近添加use warnings;来

我刚刚回到Perl编程,所以我想知道这是否是一个简单/愚蠢的问题

我的If语句返回true(从不转到else),我不确定为什么。例如,此代码从不打印“getshere”:

你能告诉我我做错了什么吗


谢谢大家!

=
是数值比较,像
'Matt'
'Gym'
这样的字符串都有数值
0
,所以它们彼此都是
=
。对于字符串比较,请改用
eq

    if ($showName[$counter] eq $showName[$counter+1])

(顺便说一句,我建议在脚本开头附近添加
use warnings;
来启用警告。如果这样做,您将收到一条有用的消息,警告您正在对非数值应用数值相等测试。)运算符将字符串转换为数字并进行数字比较。要比较字符串,请使用
eq
。要测试字符串之间的大小,请使用
cmp

if ($showName[$counter] eq $showName[$counter+1])

比较字符串需要字符串比较运算符
eq
,就像此
if($showName[$counter]eq$showName[$counter+1])
始终
使用strict;使用警告
if ($showName[$counter] eq $showName[$counter+1])