Получение некоторого странного поведения в скрипте 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;
}
Таким образом, переменная является строкой, равной пустой строке и не может использоваться вместо строки?!? Почему это?