这个问题在这里已经有了答案:





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”块。

这里, $str1taste$str2waste

我应该如何解决这个问题?

最佳答案

首先, eq 用于比较字符串; == 用于比较数字。



我认为您的问题是您的变量不包含您认为它们的作用。我认为您的 $str1$str2 包含诸如“味道\n”之类的内容。如果 : print "str1='$str1'\n"; ,则通过在 之前打印来检查它们。

可以使用 chomp($str1); 函数删除尾随的换行符。

关于Perl 中的字符串比较与 "eq"与 "==",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14046669/

10-16 11:20