Иллюстрированный самоучитель по Perl

Выражения

Таблица 4.4. Приоритет и сочетаемость операций Perl.

Приоритет Операция Сочетаемость
1 Вычисление термов и левосторонних списковых операций Слева направо
2 Слева направо
3 ++ – Не сочетаются
4 * * Справа налево
5 ! ~ \ унарные + и – Справа налево
6 =~! = Слева направо
7 * / % х Слева направо
8 + – . Слева направо
9 " " Слева направо
10 Именованные унарные операции Не сочетаются
11 <>< › = It gt le ge Не сочетаются
12 ==!= < › eq ne cmp Не сочетаются
13 & Слева направо
14 Iл Слева направо
15 && Слева направо
16 I I Слева направо
17 ….. Не сочетаются
18 ?; Справа налево
19 = **= += – =.= *= /= %= х= &= |=л ="= "= &&=|| = Справа налево
20 , › Слева направо
21 Правосторонние списковые операции Не сочетаются
22 not Справа налево
23 and Слева направо
24 or xor Слева направо

Некоторые операции, приведенные в табл. 4.4, требуют пояснения. И первым в этом ряду стоят операции с наивысшим приоритетом: термы и левосторонние списковые операции. Термы мы определили в предыдущем разделе и там же разъяснили, что списковые операции и унарные именованные операции рассматриваются компилятором Perl как термы, если список их параметров заключен в круглые скобки. Так как умножение имеет больший приоритет, чем унарная именованная операция sin, то следующие операции вычисляются так, как указано в комментариях к ним:

use Math::Trig; # В пакете определена константа
# pi = 3.14159265358979
sin I * pi; # sin(1 * pi) = 1.22460635382238e-016
sin (1) * pi; f (sin 1) * pi = 2.64355906408146

В последнем выражении sin (i) рассматривается как терм, так как после имени операции первой распознаваемое лексемой стоит открывающая круглая скобка, а если это терм, – то и вычислять его надо в первую очередь, как операцию с наивысшим приоритетом.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.