Entry tags:
Век живи — век учись
Заглянув в man perlop, обнаружил что в перле приоритет операций сравнения (например,
Это ж сколько лишних скобок я за 10 лет поставил!
eq
) не только выше, чем у логический операций заданных словами (например, or
), но даже выше, чем &&
и ||
.Это ж сколько лишних скобок я за 10 лет поставил!
no subject
if ($a > 3 && $a < 10)
работала правильно, как и в источнике откуда была заимствована (язык C), а аналогичная ейif ($a gt 'aaa' && $a lt 'ccc')
отличающаяся лишь типом данных - по иному. Логические операторыor
/and
с пониженным приоритетом хоть и употребимы в подобных конструкциях, однако общепринято чаще используются для другого. Для условного выполнения операторов (например:my $r = fetch_next() or return;
)Во-вторых, лишних скобок не бывает. Если ставил - значит сомневался, если сомневался, значит и другие могут усомниться. Читаем
БиблиюКонституциюperldoc perlstyle:When in doubt, parenthesize. At the very least it will let some
poor schmuck bounce on the % key in vi.
Even if you aren't in doubt, consider the mental welfare of the
person who has to maintain the code after you, and who will proba‐
bly put parentheses in the wrong place.
no subject
no subject