|
зон символов. Например a-z
один из малых букв латинского алфавита, 0-9 - цифра и т.д.
4. Все символы, включая специальные можно обозначать с
помощью '\' как в языке С.
5. Альтернативные последовательности разделяются символом '|'
Заметьте что внутри квадратных скобок это обычный символ.
6. Внутри регулярного выражения можно указыват "подшаблоны"
заключая их в круглые скобки и ссылаться на них как '\номер'
Первая скобка обозначается как '\1'.
* Операторы и приоритеты *
В Пел ассоциативность и приоритетность операторов
аналогична языку C. Ниже перечислены все операторы в порядке
уменьшения приоритета, в начале строки указана ассоциативность.
ассоц. операторы
----- ---------------------------
левая термы и левосторонные списковые операторы
левая ->
- ++ --
правая **
правая ! ~ \ унарные + и -
левая =~ !~
левая * / % x
левая + - .
левая << >>
- именованные унарные операторы
- < > <= >= lt gt le ge
- == != <=> eq ne cmp
левая &
левая | ^
левая &&
левая ||
- ..
правая ?:
правая = += -= *= и т.д.
левая , =>
- правосторонние списковые операторы
левая not
левая and
левая or xor
Термы и левосторонние списковые операторы.
Любой терм имеет самый высокий приоритет. К терму относятся
переменные, кавычки и их операторы, арифметические и логические выражения
в скобках, любые функции с параметрами в скобках. Фактически таких
функций нет так как это просто унарные и списковые операторы просто
они ведут себя подобно функциям с параметрами в скобках. Подробно смотри
главу "Функции".
Если после любого спикового оператора ( print(), и т.д.) или унарного
оператора (chdir(), и т.д.) следует левая круглая скобка, то операторы
внутри скобок имеют наивысший приоритет. Так же как и обычные функции.
Если скобки отсутсвуют то приоритет списковых операторов или наивысший
или наименьший в отношении операторов справа или слева от него.
Например:
@i = ('a ','b ', print 'c ', 'd ');
print "\n",@i,"\n";
Результат:
c d
a b 1
Здесь мы имеем списковый оператор print. Для запятых слева от него он
имеет наименьший приоритет, но повышает приоритет правой запятой.
Поэтому правая запятая воспринимается как параметр для print и печатается
'c d' а левая просто записывает код завершения операции в массив @i
и последний print показывает это.
Оператор '->'
Так же как в С или С++ это инфиксный оператор переадрессации. Есл
|
|