Чтение онлайн

ЖАНРЫ

Шрифт:

то компилятор будет использовать целочисленную арифметику до конца текущего блока, хотя вложенный блок может это и отменить в своих пределах с помощью:

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 -//– sticky

– T текстовой файл

– B двоичный

– M «возраст» файла в днях на момент старта скрипта

– A дней с последнего чтения

– C дней с последней модификации inode

abs выражение

Абсолютное значение выражения

accept NEWSOCKET, GENERICSOCKET

Окрыть новый сокет по внешнему запросу. Аналогично системному вызову accept. Возвращает адрес или false в случае неудачи.

alarm секунды

Послать сигнал SIGALARM текущиму процессу по истечении указанного промежутка времени. Не допустимо делать несколько вызовов одновременно в одном промежутке времени.

Возвращает остаток времени предыдущего счетчика.

atan2 Y, X

Арктангес отношения Y к X в пределах от -pi до +pi.

bind сокит, имя

Назначить сетевой адрес сокиту. Подобно системному вызову bind. Возвращает true в случае успеха и false иначе.

Имя – пакетный адрес сокита.

binmode файл

Открыть файл для двоичного (binary) режима доступа.

В обычном режиме при вводе символы CR LF транслируются в LF, а при выводе LF транслируется в CR LF.

функция bless

bless ссылка, класс

bless ссылка

Данная функция определяет что объект указанный ссылкой принадлежит классу. Если класс не указан то он относится к текущему классу. Обычно это последний оператор в конструкторе объекта.

Необходимо обязательно указывать имя класса если определяемый объект может наследоваться классом-потомком.

функция caller

caller выражение

caller

Возвращает контекст вызова текущей подпрограммы.

В скалярном контексте true если это подпрограмма или процедура вызванная операторами eval или require и false – иначе.

В списковом это список ($package, $filename, $line)

где

$package – имя пакета

$filename – имя файла пакета

$line – номер строки откуда был сделан вызов.

Поделиться с друзьями: