Ловушки Perl
Истории-страшилки про Perl-программиста, с подсказками и разоблачениями
Главная
О блоге
Об авторах
Почему?
rss
@perltrapcom
Однажды прогаммист услышал, что в языке Perl неправильная логика, и решил проверить сам. Он запустил однострочник:
Мда… “Истина” И “ложь”, а в результате – “истина”. Как же так?
Красиво, когда операции обозначаются понятными английскими словами: and
, or
, not
…
А если так?
Разве нужны в языке две дублирующие друг друга операции: &&
и and
?
У операций &&
и and
разный приоритет,
и в приведенных однострочниках порядок вычисления различается.
Второй случай похож на Си:
Но в первом все немного по-другому:
Мораль:
операции and
и or
имеют очень низкий приоритет
и плохо подходят для логических выраженияй.
Их место – идиомы вроде @info = stat($file) or die;