当我使用变量而不是字符串文字时,Perl方法失败

当我使用变量而不是字符串文字时,Perl方法失败,perl,Perl,在Perl脚本中出现一些我不太理解的奇怪行为。我正在尝试将一些神奇的字符串文字转换成更容易修改的变量 在我的子过程中有一个参数叫做$in\u feature。现在,它的值只是“在功能中”。我可以把它打印出来,看起来不错。到目前为止还不错 但是,此代码失败: if ($in_feature != "" && !$blockModel->is_field($in_feature)) { print "ERROR: was expecting to find a vari

在Perl脚本中出现一些我不太理解的奇怪行为。我正在尝试将一些神奇的字符串文字转换成更容易修改的变量

在我的子过程中有一个参数叫做
$in\u 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;
}

所以变量是一个字符串,等于空字符串,不能代替字符串?!?这是为什么?

perl中的字符串比较使用ne和eq而不是!=及==

替换
$in_功能!=带有
$in\u feature ne的“
,它可能会解决您的问题。

@Coxy,拼写为“Perl”,如果您使用
使用警告,它会大声发出警告如您所愿。