【发布时间】:2012-12-12 08:53:40
【问题描述】:
我是(一个完整的 Perl 新手)在 if 语句中进行字符串比较:
如果我执行以下操作:
if ($str1 == "taste" && $str2 == "waste") { }
我看到了正确的结果(即如果条件匹配,它会评估“then”块)。但我看到了这些警告:
在第 x 行的数字 eq (==) 中,参数“taste”不是数字。
参数“浪费”在第 x 行的数字 eq (==) 中不是数字。
但如果我这样做:
if ($str1 eq "taste" && $str2 eq "waste") { }
即使满足 if 条件,它也不会评估“then”块。
这里,$str1 是 taste,$str2 是 waste。
我应该如何解决这个问题?
【问题讨论】:
-
请发布一个独立的示例。在不知道
$str1和$str2是什么的情况下,我们无法告诉您为什么控制会到达更多我们看不到的代码。对于您的问题,eq按字典顺序比较标量,因此在这里很有用,而==按数字比较,因此不会与"taste"进行有意义的比较。 -
@hari 发布初始化变量的确切代码。如果可能,请发布完整的函数或脚本。
-
即使条件为假,如果“then”块被评估,这不是正确的结果。