Оператор !~ аналогичен =~ только результат совпадения инвентируется (логическое «нет»). Подробное применение этих операторов приводится в главе «Патерны».
Мультипликативные операторы.
' *' – арифметическое умножение
' /' – арифметическое деление
' %' – арифметический модуль
' x' – оператор повторения
В скалярном контексте возвращает строку левой части повторенную величиной указанной в правой части. В списковом контексте, если в левой части список в круглых скобках – повторенный список.
Пример:
print '*' x 5; # Результат '*****'
print (1,2) x 3; # Результат 121212
Аддитивные операторы.
' +' – арифметический плюс
' -' – арифметический минус
' .' – конкатенация (объединение) строк
Операторы сдвига.
' <<' – Сдвигает побитно влево значение выражения в левой части на количество бит указанное в правой.
' >>' – Сдвигает побитно вправо значение выражения в левой части на количество бит указанное в правой.
Именованные унарные операторы.
Фактически это функции с одним аргументом. Круглые скобки можно опускать.
Операторы отношений.
' <' – арифметическое меньше
'>' – арифметическое больше
' <=' – арифметическое меньше или равно
' >=' – арифметическое больше или равно
' lt' – строковое меньше
' gt' – строковое больше
' le' – строковое меньше или равно
' ge' – строковое больше или равно
Операторы равенства.
' ==' результат true если левая часть равна правой (равно)
' !=' – не равно
' <=>' – -1 если левая часть меньше правой, 0 если равна, 1 если больше.
' eq' – строковое равно
' ne' – строковое не равно
' cmp' – как и ' <=>' применительно к строкам
Операторы работы с битами.
' &' – побитное AND
' |' – побитное OR
' ^' – побитное XOR
Логические операторы && (AND) и || (OR).
' &&' – если левое выражение возвращает false , правое не выполняется.
' ||' – если левое выражение возвращает true , правое не выполняется.
Отличие от подобных операторов в С заключается в том, что в С возращаемое значение либо 0 либо 1. Тогда как в Перл возвращается результат выражения.
Оператор диапазона ' ..'
Результат работы данного оператора зависит от контекста. В списковом контексте результат есть список с элементами. Первый элемент которого это левое выражение и последнее – правое.
Значение каждого элемента внутри списка увеличивается на 1.
Данный оператор удобен для небольших циклов т.к. память отводится для всего списка целиком. Поэтому будьте внимательны и не задавайте слишком большой диаппазон.
Пример:
for $i (1..4)
{ print "$i ";
}
Результат: 1 2 3 4
В скалярном контексте результат – логическое значение. Каждая ' ..' операция устанавливает свое собственное состояние. Это false до тех пор пока левый операнд false . Как только левый операнд стал true результат – true до тех пока правый true , после чего результат опять – false . Если вы не хотите проверять правый операнд то используйте оператор ' ...'.
Правый операнд не вычисляется пока результат false и левый операнд не вычисляется пока пока результат true . Приоритетность оператора ' ..' немного ниже чем ' &&' и ' ||'. Возвращаемое значение если flase – нулевая строка, если true – порядковый номер начиная с 1. Порядковый номер обнуляется для каждого нового диаппазона.
Последний порядковый номер добавляется строкой " E0" которая не изменяет его значение но позволяет фиксировать последнее значение.
Пример:
@алфавит = ('a'..'z'); # Массив малых букв латинского алфавита
@цифры = (0..9); # Массив цифр
Условный оператор '?:'
Этот оператор работает так же как и в С. Если выражение перед ' ?' истинно то выполняется аргумент перед ' :' – иначе после ' :'.
Пример:
$i = 1;
$i > 1 ? print «больше» : print «меньше»;
Результат: меньше
Операторы присваивания.
' =' – обычный оператор «присвоить» правое значение переменной слева Вся эта группа операторов подобна операторам С т.е.
Читать дальше