shoorick: (Default)
[personal profile] shoorick
Заглянув в man perlop, обнаружил что в перле приоритет операций сравнения (например, eq) не только выше, чем у логический операций заданных словами (например, or), но даже выше, чем && и ||.
Это ж сколько лишних скобок я за 10 лет поставил!

Date: 2007-08-10 06:37 pm (UTC)
ext_659893: Sapa (Default)
From: [identity profile] sappa.livejournal.com
Ну, во-первых, это совершенно логично. Было бы странным если бы конструкция
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.

Date: 2007-08-10 08:42 pm (UTC)
From: [identity profile] anspa.livejournal.com
но интереснее взаимотношение ||, && и словесных or и and. я как-то полдня потратил, прежде чем понял что || и or это не одно и то же.

Date: 2007-08-12 12:43 am (UTC)
From: [identity profile] selfmade.livejournal.com
Мало скобок не бывает (с) Программист на Lisp

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 23rd, 2026 07:44 am
Powered by Dreamwidth Studios