在Perl脚本中获取一些我不太了解的奇怪行为。我正在尝试将一些神奇的字符串文字变成可以更容易修改的变量。
我的子程序中有一个名为$in_feature
的参数。现在它的价值只是"in_feature"
。我可以把它打印出来看起来很好。到目前为止一切都很好......
但是这段代码失败了:
if ($in_feature != "" && !$blockModel->is_field($in_feature))
{
print "ERROR: was expecting to find a variable in the block model called $in_feature.\n";
return;
}
如果我删除字符串比较并将方法调用更改回字符串文字,则按预期工作。
if (!$blockModel->is_field("in_feature"))
{
print "ERROR: was expecting to find a variable in the block model called $in_feature.\n";
return;
}
所以变量是某种字符串,等于空字符串,不能用来代替字符串?!?为什么会这样?
答案 0 :(得分:8)
perl中的字符串比较使用ne和eq而不是!=和==
将$in_feature != ""
替换为$in_feature ne ""
,它可能会解决您的问题。