这个问题在这里已经有了答案:
How do I compare two strings in Perl?
(7 个回答)
3年前关闭。
我是(一个完整的 Perl 新手)在 if
语句中进行字符串比较:
如果我执行以下操作:
if ($str1 == "taste" && $str2 == "waste") { }
我看到了正确的结果(即如果条件匹配,它会评估“then”块)。但我看到这些警告:
但如果我这样做:
if ($str1 eq "taste" && $str2 eq "waste") { }
即使满足 if 条件,它也不会评估“then”块。
这里,
$str1
是 taste
, $str2
是 waste
。我应该如何解决这个问题?
最佳答案
首先, eq 用于比较字符串; == 用于比较数字。
我认为您的问题是您的变量不包含您认为它们的作用。我认为您的 $str1
或 $str2
包含诸如“味道\n”之类的内容。如果 : print "str1='$str1'\n";
,则通过在 之前打印来检查它们。
可以使用 chomp($str1);
函数删除尾随的换行符。
关于Perl 中的字符串比较与 "eq"与 "==",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14046669/