|
арифметику с плавающей запятой, но
если вы укажете:
use integer;
то компилятор будет использовать целочисленную арифметику до
конца текущего блока, хотя вложенный блок может это и отменить
в своих пределах с помощью:
no integer;
* Встроенные функции *
Встроенные функции используются как термы выражений и
подразделяются на две категории: списковые операторы и унарные
операторы. Это влияет на их приоритет по отношению к оператору
',' - запятая. Списковые операторы могут именть множество
(список) аргументов, а унарные только один. Таким образом
запятая завершает аргументы унарного оператора и разделяет
аргументы спискового.
Аргумент унарного оператора воспринимается обычно в
скалярном контексте а спискового как в скалярном так и
списковом причем скалярные аргументы идут первыми. В дальнешем
списковые аргументы мы будем обозначать словом 'LIST' это
значит что функция имеет список аргументов разделенных запятой.
Аргументы функций можно заключать в круглые скобки и таким
образом обозначать что "это функция" и приоритет не имеет
значения иначе это списковый или унарный оператор с
определенным фиксированным приоритетом. Пробел после имени
функции и скобкой значения не имеет. Поэтому будьте
внимательны!
Пример:
print 1 + 2 + 3; # результат 6
print(1+2)+3; # результат 3
print (1+2)+3; # опять 3
print (1+2+3); # 6
Если функция возвращает результат как в скалярном так и в списковом контексте
то код выхода по ошибке - скаляр c неопределенным значением или пустой
список.
Запомните правило:
Не существует общего правила преобразования списка в скаляр!
Каждый оператор и функция имеют свой вид значения в скалярном котексте.
Для одних это количество элементов из скалярного контекста. Для других
первый элемент списка или последний или количество
успешных операций. Каждый свое если вы специально не указываете.
Оператор '-X'.
-X указатель файла
-X выражение
-X
Проверка файла, где 'X' одно из ниже описанных значений.
Это унарный оператор с одним аргументом - либо именем файла либо
указателем файла. Проверяет одно из условий. Если аргумент не указан
то берется значение переменной $_. Для ключа -t STDIN.
Результат 1 если true и '' если false или неопределенное значение
если файл не найден. Несмотря на странный вид это унарный оператор
с соответсвующим приоритетом. Аргумент можно заключать в круглые скобки.
'X' имеет следующие значения:
-r Файл разрешен на чтение эффективным uid/gid
-w на запись -//-
-x исполнение -//-
-o принадлежит эффективному uid (идентификатор пользователя)
-R Файл разрешен на чтение реальным uid/gid
-W на запись -//-
-X исполнение -//-
-O принадлежит реальному uid
-e файл существует
-z пустой
-s не пустой
-f обычный текст
-d директория
-l символическая ссылка
-p pipes (конвейер)
-S socket (гнездо)
-b специальное блочное устройство
-c -//- символьное -//-
-t указатель на уст-во tty
-u установлен бит setuid
-g -//- setgid
-k -//- stic
|
|