При оценке выражения в скалярном (булевом) контексте Perl использует явное значение 1
как результат, если выражение оценивается как true и пустая строка, если выражение принимает значение false.
Мне любопытно, почему Perl использует пустую строку для представления логического ложного значения, а не 0
, что кажется более интуитивным.
Обратите внимание, что я не заинтересован в том, что Perl обрабатывает пустую строку как ложный в скалярном (булевом) контексте.
ИЗМЕНИТЬ
Как использовать строку, которая истинна ("false"
например), как строковое представление ложных значений, изменяет смысл существующего кода? Можем ли мы сказать, что код, который изменяет семантику после такого изменения, менее надежный/правильный, чем мог бы быть? Я предполагаю, что строковый контекст настолько распространен в Perl, что единственный вариант, приводящий к разумной семантике, заключается в том, что если логическое значение сохраняет свое значение после округления до строки и из строки...