Perl:如果总是返回true
我刚刚回到Perl编程,所以我想知道这是否是一个简单/愚蠢的问题 我的If语句返回true(从不转到else),我不确定为什么。例如,此代码从不打印“getshere”: 你能告诉我我做错了什么吗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;来
谢谢大家!
=
是数值比较,像'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])