Фактически таких функций нет так как это просто унарные и списковые операторы просто они ведут себя подобно функциям с параметрами в скобках. Подробно смотри главу «Функции». Если после любого спикового оператора ( print(), и т.д.) или унарного оператора (chdir(), и т.д.) следует левая круглая скобка, то операторы внутри скобок имеют наивысший приоритет. Так же как и обычные функции. Если скобки отсутсвуют то приоритет списковых операторов или наивысший или наименьший в отношении операторов справа или слева от него. Например: @i = ('a ','b ', print 'c ', 'd '); print «\n»,@i,"\n"; Результат: c d a b 1 Здесь мы имеем списковый оператор print. Для запятых слева от него он имеет наименьший приоритет, но повышает приоритет правой запятой. Поэтому правая запятая воспринимается как параметр для print и печатается 'c d' а левая просто записывает код завершения операции в массив @i и последний print показывает это.
Оператор
'->' Так же как в С или С++ это инфиксный оператор переадрессации. Если справа от него стоит [...] или {...} выражение, то правая часть может быть непосредственной или символической ссылкой на массив или хеш. В противном случае правая сторона это метод или простой скаляр содержащий имя метода, а правая или объект или имя класса. Подробно смотри главу «Классы».
Операторы
++(инкремент) и
–(декремент). Эти операторы работают так же как и в С. Если оператор стоит перед переменной то значение переменной изменяется на 1 и полученной значение используется. Если после переменной то ее величина изменяется после применения. Употребление инкремента к строковым переменным в Перл имеет одну особенность. Каждый символ остается в своем классе (большие, малые, цифры) и учитывается перенос предыдущего символа. Таким образом строковые переменные с цифрами работают как числовые переменные. Пример: print ++($i = «09»); # Результат «10» print ++($i = «a9»); # «b0» print ++($i = «az»); # «ba» print ++($i = «aZ»); # «bA»
Оператор
**(возведение в степень) Пример: print 4**2 # Результат 16 print -4**2 # Результат -16 т.е.
|