Для распаковки применяйте: ($a, $b, $c, $d) = unpack('C4',$addr[0]);
getsockname сокит
Возвращает упакованный адресс сокита локальной машины.
getsockopt сокит, уровень, опция
Возвращает опцию сокита.
glob выражение
Возвращает список файлов удовлетворяющих выражению с '*' как в команде ls.
gmtime выражение
Переводит местное время полученное функцией time() во время по Гринвичу.
Обычно используется в виде:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=gmtime(time);
goto метка
goto выражение
goto &подпрограмма
Бузусловный переход на метку. Нельзя делать переход на метку в структуру которая должна быть инициирована например подпрограмму или цикл foreach и т.д.
Вторая форма применяется для динамического определения перехода.
Например:
goto ('метка1', 'метка2', 'метка3')[$i];
Здесь при $i = 0 будет переход на 'метка1', $i = 1 на 'метка2' и т.д.
Третья форма (goto &подпрограмма) довольно «хитрый» метод подмены имени вызываемой подпрограммы именем текущей. Это используется в методе автозагрузки когда нужно запустить другую процедуру но под именем текущей как-будто та была вызвана раньше.
grep блок, список
grep выражение, список
Выполнят блок или выражение для каждого элемента списка. Переменная $_ содержит текущий элемент.
Возвращает список элементов с которыми выражение дало результат true.
В скалярном контексте возвращает количество результатов true.
hex выражение
Воспринимает выражение как строку шестнадцатиричных цифр и возвращает десятичное значение.
import
В Перл нет встроенной функции import, но есть метод с помощью которого модули могут экспортировать область имен
другим модулям. Подробно смотрите функцию use().
index строка, подстрока, позиция
index строка, подстрока
Возвращает позицию первого вхождения подстроки в строке начиная с указанной позиции. Если позиция отсутсвует то сравнение начинается с начала строки. Отсчет позиции ведется с 0 если только не изменено значение встроеной переменной $[. Если подстрока не найдена то результат меньше первой позиции на 1. Обычно это -1.
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")); # «ab\0\0cde»
pipe READHANDLE, WRITEHANDLE