Читать интересную книгу Введение в Perl - Владимир Маслов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 7 8 9 10 11 12 13 14 15 16

int выражение

Возвращает целую часть выражения.

ioctl FILEHANDLE, FUNCTION, SCALAR

Выполняет системный вызов ioctl(). В начале программы необходимо указать: require «ioctl.ph»;

join выражение, список

Соединяет строки списка или массива в одну строку с кодом разделителя равному выражению.

keys хеш

Возвращает массив всех ключей хеша. В скалярном контексте – количество ключей. Порядок следования ключей аналогичен порядку в each функции.

kill список

Послать сигнал (первый элемент) указанным в списке процессам. Возвращает количество процессов которые сигнал приняли.

last метка

last

Функция аналогичная break в С. Прерывает цикл и переходит на указанную метку. Если метки нет на ближайший внешний цикл.

Блок continue не выполняется.

lc выражение

Преобразовать строку в буквы нижнего регистра.

lcfirst выражение

Заменить первую букву строки на малую.

length выражение

Возвращает длину строки выражения.

link OLDFILE, NEWFILE

Создать файл NEWFILE связанный с файлом OLDFILE.

listen SOCKET, QUEUESIZE

Выполнить системный listen().

local список

Объявляет перечисленные переменные как локальные в текущем блоке или подпрограмме. Если указано два и более имени их необходимо заключить в круглые скобки. Предпочтительней использовать функцию my().

localtime выражение

Преобразовать 9-элементный массив возвращаемый функцией time относительно местного времени. Употребляется как:

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

log выражение

Возвращает натуральный логарифм выражения.

lstat файл

lstat выражение

То же что и системный вызов stat() но касательно ссылки на файл а не самого файла.

m//

Оператор совпадения. Смотри главу «Операторы»

map блок, список

map выражение, список

Выполняет блок или выражение для каждого элемента списка.

Возвращает список результатов.

mkdir директория, права

Создать директорию с указанными правами доступа. Возвращает 1 при успехе и 0 при неудаче.

msgctl ID, CMD, ARG

Системный вызов msgctl() System V

msgget KEY, FLAGS

Системный вызов msgget() System V

msgsnd ID, MSG, FLAGS

Системный вызов msgsnd() System V

msgrcv ID, VAR, SIZE, TYPE, FLAGS

Системный вызов msgrcv() System V

my список

Объявляет локальными переменные в списке.

Если два или более имени их необходимо заключить в круглые скобки.

next метка

next

Аналогичен continue в С. Переход к следующей итерации в цикле.

Если в цикле присутсвует блок continue он так же выполняется.

Если метка отсутсвует – переход на ближайший внутренний цикл.

no Module список.

Исключить использование указанных модулей.

oct выражение

Возвращает десятичное число представленное восьмеричными цифрами.

open файл,выражение

open файл

Открыть файл с указанным именем. Аргумент «файл» – это фактически указатель на блок описания файла. Если имя (выражение) файла отсутсвует то имя считается таким же как и указатель файла.

Если перед именем стоит символ '<' то файл открывается только на чтение (значение по умолчанию). Если '>' – на запись.

Если '>>' – на добавление записей. '+>' или '+<' – файл открыт на чтение и запись одновременно.

Если имя файла начинается с символа '|' то имя считается системной командой на вход которой выводятся данные (поток).

Имя '-' – стандартный вход (STDIN), '>-' – стандартный вывод (STDOUT).

Функция возвращает true при успехе и false – неудаче.

Если имя (выражение) начинается с символов «>&» то остаток имени считается именем указателя файла который окрывается повторно.

Символ '&' может стоять после '<', '>>', '+>', '+>>' и '+<'. Режим повторного открытия должен соответсвовать первому.

Выражение вида «<&=N» где N -число, эквивалентно системному вызову fdopen().

Если имя «|-» или «-|» то происходит «расщепление» (fork) процесса на потомка и родителя. При этом возвращается номер процесса потомка (PID) внутри родительского процесса и 0 – внутри потомка. При этом запись/чтение в файл родительским процессом воспринимается как чтение/запись потомком. Для потомка это стандартный ввод/вывод.

Родительский процесс ждет завершения потомка после закрытия потока и получает код завершения в переменной $?.

Имя файла не должно содержать пробелов как в начале так и в конце.

opendir указатель, выражение

Открыть директорию с именем выражения для обработки функциями readdir(), telldir(), seekdir(), rewinddir() и closedir().

Возвращает true при успехе.

ord выражение

Возвращает ascii код первого символа выражения.

pack шаблон, список

Упаковывает список в двоичную структуру по шаблону.

Шаблон – это строка символов описывающая порядок и тип упакованных значений.

A – текстовая строка, добавляется пробелами.

a – текстовая строка, добавляется 0 символом.

b – битовая строка (возрастающая нумерация бит)

B – битовая строка (убывающая нумерация бит)

h – шестнадцатеричная строка ( младший байт – первый)

H – шестнадцатеричная строка (старший байт первый)

c – символ со знаком

C – символ без знака.

s – короткое целое (один байт) со знаком.

S – короткое целое без знака.

i – целое (два байта) со знаком.

I – целое без знака.

l – длинное целое (4 байта) со знаком.

L – длинное целое без знака.

n – короткое в «сетевом» формате.

N – длинное в «сетевом» формате.

v – короткое в «VAX» формате.

V – длинное в «VAX» формате.

f – single float.

F – double float.

p – указатель на строку ограниченную 0.

P – указатель на структуру с фиксированной длиной.

u – упаковка uuencode.

x – нуль-байт

X – резервный байт.

@ – заполнить нулями позицию.

За каждой буквой может стоять число означающее количество повторов.

Для всех типов за исключением 'a', 'A', 'b', 'B', 'h' и 'H', упаковывается максимально возможное количество значений из списка.

Символ '*' после типа означает использовать оставшиеся параметры.

Тип 'a' и 'A' использует только одно значение из списка и добавляет остаток поля либо нуль-символами либо пробелами (при распаковке по типу 'A' пробелы и нули отбрасываются, а по 'a' – нет).

Типы 'b' и 'B' упаковывают строку в указанное число бит.

Так же как и 'h' и 'H' в число ниблов (байт).

'P' – упаковывает указатель на структуру с указанной длиной.

Числа с плавающей запятой (floats и double) записываются в стандартном для каждой машины формате и могут быть разными

для разных типов машин. Заметьте, что Перл всегда использует двойную точность (double) поэтому упаковка и распаковка по

типу 'f' приведет к потере точности.

Шаблоны для распаковки и упаковки совершенно одинаковы.

Примеры:

print(pack(«ccc»,65,66,67)); # Результат ABC

print(pack(«A4A3»,"ab","cdefg")); # «ab cde»

print(pack(«a4a3»,"ab","cdefg")); # «abcde»

pipe READHANDLE, WRITEHANDLE

Аналогичен системному pipe().

pop массив

Удаляет и возвращает последний элемент массива.

Длина массива уменьшается на 1. Результат не определен если массив пустой. Если имя массива отсутсвует то извлекает из @ARGV для головной программы и @_ для подпрограммы.

pos скаляр

Возвращает смещение от последнего m//g поиска.

print файл список

print список

print

Выводит строку или список строк в файл. Возвращает true при успехе. Аргумент файл может быть скалярной переменной содержащей имя указателя файла если он отсутсвует то осуществляется вывод в стандартный выходной поток STDOUT (если не было вызова select()).

Если список отсутсвует то выводится значение переменной $_.

Для вывода по умолчанию в другой файл необходимо использовать функцию select().

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

Если указатель файла – элемент массива то элемент нужно заключить в фигурные скобки для вычисления блока.

printf файл список

printf список

Аналогичен вызову "print файл sprintf(список)".

Первый элемент списка должен быть форматом printf() как и в С.

push массив, список

Добавить элементы массива значениями из списка.

Длина массива увеличивается на количество элементов списка.

q/строка/

qq/строка/

qx/строка/

1 ... 7 8 9 10 11 12 13 14 15 16
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Введение в Perl - Владимир Маслов.

Оставить комментарий