or логическое ИЛИ (например, $m eq 'D' or $m eq 'J' or $m eq 'F')
xor логическое ИСКЛЮЧАЮЩЕЕ ИЛИ (например, $d==1 xor $m eq 'J')
Операция логическое
Побитовые операции (bitwise operators) выполняются над двоичными разрядами операндов. Унарная операция побитовое
~ побитовое НЕ (~ 0b1101 даст результат 0b0010)
& побитовое И (0b1010 & 0b0110 даст результат 0b0010)
| побитовое ИЛИ (0b1010 | 0b0110 даст результат 0b1110)
^ побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (0b1010 ^ 0b0110 даст 0b1100)
Эти операции могут выполняться над строками. При этом выполняются поразрядные операции над соответствующими битами двух строк, и считается, что более короткая строка дополняется в конце нулевыми разрядами до размера длинной.
Бинарные побитовые операции сдвига выполняются над двоичными разрядами целого числа: значение левого операнда поразрядно сдвигается влево или вправо на число разрядов, указанное правым операндом. При этом освобождающиеся двоичные разряды заполняются нулями.
<< побитовый сдвиг влево (0b1010 << 2 даст результат 0b101000)
>> побитовый сдвиг вправо (0b1010 >> 3 даст результат 0b000001)
В Perl есть бинарные операции, применяемые только к строкам: конкатенация (или сцепление) двух строк, обозначаемая символом "точка", и репликация (или повторение), обозначаемая латинской строчной буквой "x", поскольку в результате этой операции строка "умножается" указанное число раз.
. конкатенация (например, 'X' . '=' . '25' даст строку 'X=25')
x репликация (например, 'Дa!' x 3 даст в результате строку 'Дa!Дa!Дa!')
Операция сцепления создает строковый контекст. Поэтому если ее операнды - числа, то они преобразуются в строки, например:
'100' . '3' даст в результате строку '1003'
100 . 3 тоже даст в результате строку '1003'
В левой части операции повторения ожидается строка, а в правой - число повторений. Если в правой части операции повторения стоит строка, то она преобразуется к числу. Причем, если правый операнд операции повторения - дробный, то берется его целое значение, а если он отрицательный или равен нулю, то результатом повторения будет пустая строка:
100 x 3 даст в результате строку '100100100'
100 x 3.9 даст в результате строку '100100100'
100 x 0 или 100 x .1 или 100 x 'x3' даст в результате пустую строку ''
100 x -20 даст в результате пустую строку ''
Рассмотренная ранее операция автоинкремента может особым образом применяться к строкам, состоящим только из латинских букв и цифр. Для таких строк выполняется увеличение значения каждого символа, начиная с правого, с переносом разрядов влево, как у чисел. При этом символ 'a' становится 'b', 'b' становится 'c' и так далее, а 'z' становится 'a' с увеличением значения символа слева. Следующие примеры поясняют сказанное:
$s = 'xzz'; $s++; даст в результате строку 'yaa'
$s = 'XZZ'; $s++; даст в результате строку 'YAA'
$s = 'xy9'; $s++; даст в результате строку 'xz0'
При этом операция автодекремента, примененная к символьным строкам, не обладает "магическим" действием: буквенная строка, как обычно, преобразуется к нулю, который уменьшается на единицу.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии