Оператор — это символ, который сообщает компилятору выполнить определенную математическую или логическую операцию, например: 3+2=5.
Язык Perl имеет множество встроенных операторов. Давайте рассмотрим наиболее часто используемые из них:
арифметические операторы
оператор сравнения
Логические операторы
оператор присваивания
Битовые операторы
оператор котировки
Другие операторы
приоритет оператора
В примере таблицы мы установили переменные $a равными 10 и $b равными 20.
| оператор | описывать | Пример |
|---|---|---|
| + | Добавление | $a + $b дает 30 |
| - | операция вычитания | $a - $b дает -10 |
| * | Умножение | $a * $b дает 200 |
| / | Операция дивизии | $b / $a дает 2 |
| % | Операция поиска остатка, остаток после целочисленного деления | $b % $a дает 0 |
| ** | Умножить в степень | Результат $a**$b равен 10 в 20-й степени. |
Выходной результат выполнения вышеуказанной программы:
$a = 10, $b = 20$a + $b = 30$a - $b = -10$a * $b = 200$a / $b = 0,5$a % $b = 10$a ** $ б = 16
В примере таблицы мы установили переменные $a равными 10 и $b равными 20.
| оператор | описывать | Пример |
|---|---|---|
| == | Проверяет, равны ли значения двух операндов, если равны, то условие истинно, в противном случае — ложно. | ($a == $b) неверно |
| != | Проверяет, равны ли значения двух операндов, если условие истинно, в противном случае — ложно. | ($a != $b) верно. |
| <=> | Проверяет, равны ли значения двух операндов, возвращая -1, если число слева меньше числа справа, 0, если они равны, и 1, если число слева больше числа справа. | ($a <=> $b) возвращает -1. |
| > | Проверяет, превышает ли значение левого операнда значение правого операнда, если да, то условие истинно, в противном случае — ложно. | ($a > $b) возвращает ложь. |
| < | Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, то условие истинно, в противном случае возвращается ложь. | ($a < $b) возвращает true. |
| >= | Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, то условие истинно, в противном случае возвращается ложь. | ($a >= $b) возвращает ложь. |
| <= | Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, то условие истинно, в противном случае возвращается ложь. . | ($a <= $b) возвращает истину. |
Выходной результат выполнения вышеуказанной программы:
$a = 10, $b = 20$a == $b Результат — false$a != $b Результат — true$a <=> $b Возврат -1$a > $b Результат — false$a >= $b Результат ложный $a < $b результат true$a <= $b результат true
В следующем примере таблицы задайте для переменной $a значение «abc», а для $b — «xyz», а затем используйте операторы сравнения для вычисления результата.
| оператор | описывать | Пример |
|---|---|---|
| лт | Проверяет, меньше ли строка слева, чем строка справа, если да, то возвращается true, в противном случае возвращается false. | ($a lt $b) возвращает true. |
| гт | Проверяет, больше ли строка слева, чем строка справа, если да, то возвращается true, в противном случае возвращается false. | ($a gt $b) возвращает ложь. |
| ле | Проверяет, меньше ли строка слева или равна строке справа, если да, то возвращается true, в противном случае возвращается false. | ($a le $b) возвращает true |
| ге | Проверяет, больше или равна строка слева строке справа; если да, то возвращается true, в противном случае возвращается false. | ($a ge $b) возвращает ложь. |
| экв. | Проверяет, равна ли строка слева строке справа, если да, то возвращается true, в противном случае возвращается false. | ($a eq $b) возвращает ложь. |
| пе | Проверяет, не равна ли строка слева строке справа, если да, то возвращается true, в противном случае возвращается false. | ($a ne $b) возвращает true |
| cmp | Возвращает 1, если строка слева больше, чем строка справа, 0, если равна, и -1, если строка слева меньше строки справа. | ($a cmp $b) возвращает -1. |
Выходной результат выполнения вышеуказанной программы:
$a = abc, $b = xyzabc lt $b возвращает true$a gt $b возвращает false$a le $b возвращает true$a ge $b возвращает false$a ne $b возвращает true$a cmp $b возвращает -1
В примере таблицы мы установили переменные $a равными 10 и $b равными 20.
| оператор | описывать | Пример |
|---|---|---|
| = | Простой оператор присваивания, присваивает значение правого операнда левому операнду. | $c = $a + $b присвоит значение $a + $b переменной $c. |
| += | Оператор сложения и присваивания присваивает результат добавления правого операнда к левому операнду левому операнду. | $c += $a равно $c = $c + $a |
| -= | Оператор вычитания И присваивания присваивает результат вычитания правого операнда из левого операнда левому операнду. | $c -= $a равно $c = $c - $a |
| *= | Оператор умножения и присваивания присваивает результат умножения правого операнда на левый операнд левому операнду. | $c *= $a равно $c = $c * $a |
| /= | Оператор деления и присваивания присваивает результат деления левого операнда на правый операнд левому операнду. | $c /= $a равно $c = $c / $a |
| %= | Оператор по модулю и присваиванию находит модуль двух операндов и присваивает его левому операнду. | $c %= $a эквивалентно $c = $c % a |
| **= | Оператор возведения в степень и присваивания находит степень двух операндов и присваивает их левому операнду. | $c **= $a равно $c = $c ** $a |
Выходной результат выполнения вышеуказанной программы:
$a = 10, $b = 20. После присваивания $c = 30$c = 40, оператор операции $c += $a$c = 30, оператор операции $c -= $a$c = 300, оператор операции $c *= $a$c = 30, оператор операции $c /= $a$c = 0, оператор операции $c %= $a$a = 4, $c = 2$c = 16, оператор операции $c **= $a
Побитовые операторы оперируют битами и выполняют операции бит за битом.
Установив $a = 60, $b = 13, теперь в двоичном формате они выглядят так:
$a = 0011 1100$b = 0000 1101-----------------$a&$b = 0000 1100$a|$b = 0011 1101$a^$b = 0011 0001 ~$а = 1100 0011
Побитовые операторы, поддерживаемые Perl, показаны в следующей таблице:
| оператор | описывать | Пример |
|---|---|---|
| & | Бинарный оператор И копирует один бит в результат, если присутствуют оба операнда. | ($a и $b) дадут вам 12, что в двоичном формате равно 0000 1100. |
| | | Бинарный оператор ИЛИ копирует один бит в результат, если он присутствует в любом операнде. | ($a | $b) получит 61, что равно 0011 1101 в двоичном формате. |
| ^ | Бинарный оператор XOR копирует бит в результат, если он присутствует в одном из операндов, но не в обоих. | ($a ^ $b) даст вам 49, что в двоичном формате равно 0011 0001. |
| ~ | Оператор двоичного дополнения — это унарный оператор, который имеет эффект «переворачивания» битов, то есть 0 становится 1, а 1 становится 0. | (~$a ) даст -61, что равно 1100 0011 в двоичном виде, форме дополнения до единицы двоичного числа со знаком. |
| << | Бинарный оператор сдвига влево. Значение левого операнда сдвигается влево на количество бит, заданное правым операндом. | $a << 2 даст вам 240, что в двоичном формате равно 1111 0000. |
| >> | Бинарный оператор сдвига вправо. Значение левого операнда сдвигается вправо на количество бит, заданное правым операндом. | $a >> 2 получит 15, что в двоичном формате равно 0000 1111. |
Выходной результат выполнения вышеуказанной программы:
$a = 60, $b = 13$a & $b = 12$a | $b = 61$a ^ $b = 49~$a = -61$a << 2 = 240$a >> 2 = 15
Логические операторы Perl показаны в следующей таблице.
В примере таблицы мы устанавливаем для переменной $a значение true, а для $b — значение false.
| оператор | описывать | Пример |
|---|---|---|
| и | Логический оператор И. Если оба операнда истинны, условие истинно. | ($a и $b) неверно. |
| && | Логический оператор И в стиле C. Условие истинно, если оба операнда истинны. | ($a && $b) неверно. |
| или | Логический оператор ИЛИ. Условие истинно, если любой из двух операндов не равен нулю. | ($a или $b) верно. |
| || | Логический оператор ИЛИ в стиле C. Условие истинно, если любой из двух операндов не равен нулю. | ($a || $b) верно. |
| нет | Логический оператор НЕ. Используется для инвертирования логического состояния операнда. Если условие истинно, логический оператор НЕ сделает его ложным. | not($a и $b) верно. |
Выходной результат выполнения вышеуказанной программы:
$a = true, $b = false$a и $b = false$a && $b = false$a или $b = true$a || $b = truenot($a)= 1
Операторы кавычек Perl показаны в следующей таблице.
| оператор | описывать | Пример |
|---|---|---|
| д{ } | Добавить одинарные кавычки в строку | q{abcd} приводит к 'abcd' |
| qq{ } | Добавить двойные кавычки в строку | qq{abcd} приводит к "abcd" |
| qx{ } | Добавить обратные кавычки в строку | qx{abcd} приводит к `abcd` |
Выходной результат выполнения вышеуказанной программы:
q{a = $a} = a = $aqq{a = $a} = a = 10qx{date} = пятница, 10 июня 2016 г., 16:22:33 CSTПомимо операторов, упомянутых выше, Perl также поддерживает следующие операторы:
| оператор | описывать | Пример |
|---|---|---|
| . | Точка (.) используется для объединения двух строк. | Если $a="run", $b="oob" , результатом $a.$b будет "codercto" |
| х | Оператор x возвращает количество повторений строки. | ('-' x 3) Результат: ---. |
| .. | .. является оператором диапазона. | (2..5) Выходной результат: (2, 3, 4, 5) |
| ++ | Оператор инкремента, целочисленное значение увеличивается на 1 | $a =10, $a++ выведет 11 |
| -- | Оператор декремента, уменьшает целое значение на 1. | $a =10, $a — результат равен 9 |
| -> | Стрелки используются для указания методов класса. | $obj->$a представляет метод $a объекта $obj. |
Выходной результат выполнения вышеуказанной программы:
$a = запустить, $b = oob$a. $b = codercto"-" x 3 = ---(2..5) = 2 3 4 5$a = 10, $b = 15$a выполнить $a++ = 11$b выполнить $b-- = 14
В следующей таблице указан приоритет операторов языка Perl:
| оператор | ассоциативность |
|---|---|
| ++, -- | никто |
| -, ~, ! | справа налево |
| ** | справа налево |
| =~, !~ | слева направо |
| *, /, %, х | слева направо |
| +, -, . | слева направо |
| <<, >> | слева направо |
| -е, -р, | никто |
| <, <=, >, >=, lt, le, gt, ge | слева направо |
| ==, !=, <=>, eq, ne, cmp | слева направо |
| & | слева направо |
| |, ^ | слева направо |
| && | слева направо |
| || | слева направо |
| .. | слева направо |
| ? и : | справа налево |
| =, +=, -=, *=, | справа налево |
| другой | |
| , | слева направо |
| нет | слева направо |
| и | слева направо |
| или, xor | слева направо |
Выходной результат выполнения вышеуказанной программы:
$a = 20, $b = 10, $c = 15, $d = 5($a + $b) * $c / $d = 90(($a + $b) * $c) / $d = 90($a + $b) * ($c / $d) = 90$a + ($b * $c)/ $d = 50