Введение в Perl
Добавить в закладки К обложке
- От простого к сложному - Страница 1
- Запуск интерпретатора Перл - Страница 4
- Синтаксис - Страница 6
- Переменные - Страница 10
- Встроенные переменные Перл - Страница 13
- Регулярные выражения (шаблоны) - Страница 15
- Операторы и приоритеты - Страница 17
- Встроенные функции - Страница 23
- Группа системных вызовов - Страница 27
- Подпрограммы - Страница 35
- Модули (packages) - Страница 37
- Форматы - Страница 39
- Отладка Перл программ - Страница 41
- Список литературы - Страница 42
- Интернет – ссылки - Страница 43
Оператор !~ аналогичен =~ только результат совпадения инвентируется (логическое «нет»). Подробное применение этих операторов приводится в главе «Патерны».
Мультипликативные операторы.'*' – арифметическое умножение
'/' – арифметическое деление
'%' – арифметический модуль
'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. Порядковый номер обнуляется для каждого нового диаппазона.