Введение в Perl - Владимир Маслов
Шрифт:
Интервал:
Закладка:
Если пустая строка походит под шаблон разделителя то исходное значение разделяется по символьно.
Предел удобно использовать для частичного разделения строки.
Пример:
($a, $b, $остаток) = split(/ /, «Один Два Три Четыре»,3);
здесь $a = 'Один', $b = 'Два' и $остаток = 'Три Четыре'
Если шаблон содержит круглые скобки то символы-разделители указанные в них вставляются в результирующий список как обычные элементы, причем вставляется символ который совпал с разделителем.
Пример:
@a = split(/([,.])/, «Один,Два.Три»);
здесь @a = («Один», "," ,"Два", ".", «Три»)
sprintf формат, список
Форматирует список по указанному формату аналогично функции sprintf() языка С.
sqrt выражение
Возвращает корень квадратный выражения.
srand выражение
Задает начальное значение для генератора случайных чисел оператора rand. Если аргумент отсутсвует то используется текущее машинное время.
stat файл
stat выражение
Возвращает 13 элементный массив параметров указанного файла или пустой список при ошибке. Применяется обычно следующим образом:
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat($filename);
где
$dev – имя устройства
$ino – номер i-узла
$mode – права доступа
$nlink – количество связей
$uid – идентификатор владельца
$gid – идентификатор группы
$rdev – тип устройства
$size – размер файла в байтах
$atime – дата последнего обращения
$mtime – дата последней модификации
$ctime – дата последнего изменения статуса
$blksize – размер блока на диске
$blocks – количество блоков в файле.
Если указан аргумент '_' то возвращается результата предыдущего
вызова stat().
study скаляр
study
Влючение метода частотного сравнения. Целесообразность применения зависит от количества поисков и количества констант в строке в которой ведется поиск.
Функция работает следующим образом:
Для указанного скаляра (если аргумент отсутсвует берется значение переменной $_) строится список указателей на каждый символ строки.
Затем когда начинается поиск первыми просматриваются символы которые наиболее редко встречаются в английском языке.
Выигрыш по времени очевиден когда выполняется многократный поиск в одной и той же строке и время затраченной на индексацию окупается.
substr выражение, смещение, длина
substr выражение, смещение
Возвращает подстроку выражения начиная со смещения и заданной длины. Если смещение отрицательное то отсчет ведется от конца строки.
Если длина не указана то берется все до конца строки.
symlink старый_файл, новый_файл
Создает новый файл символически связанный со старым т.е. создает ссылку на файл. Возвращает 1 при успехе и 0 – неудаче.
syscall список
Выполняет системную функцию. Первый элемент списка – это имя функции а остальные элементы – ее аргументы.
Если функция не выполнима то возвращается фатальная ошибка.
Аргументы интерпретируются следующим образом.
Если аргумент число, то оно считаестя целым. Если не число то аргумент считается указателем на строку. Вам необходимо обеспечить достаточную длину аргумента для подстановки значения указателя. В Перл передается максимум 14 параметров. Обычно этого достаточно.
sysread файл, скаляр, длина, смещение
sysread файл, скаляр, длина
Прочитать из файла указанное число байт в скаляр с помощью системного вызова read(). Смещение обозначает позицию в скаляре после которой будут вставлены прочитанные байты.
system список
Делает то же самое что и «exec список» с той лишь разницей что вызов fork() делается первым и родительский процесс ждет завершения потомка. Возвращает значение аналогичное функции wait().
Для получения действительного кода завершения необходимо разделить на 256.
syswrite файл, скаляр, длина, смещение
syswrite файл, скаляр, длина
Записать в файл укзанное число байт скаляра с помощью системного вызова write(). Смещение указывает позицию в скаляре
откуда начинается запись.
tell файл
tell
Возвращает текущую позицию указателя в открытом файле. Если файл не указан то последнего читаемого файла.
telldir директория
Возвращает текущую позицию указателя в открытой директории.
Обычно это параметр для позиционирования указателя директории функцией seekdir().
tie переменная, класс, список
Присваивает переменную классу. Список – это аргументы new метода класса (TIESCALAR, TIEARRAY или TIEHASH).
Возвращает указатель на созданный новый объект класса который удобен для вызова других методов класса.
Внимание! Такие функции как keys() и values() могут вернуть в качесте значения огромное количество данных.
Для создания объекта ассоциативного типа необходимо определение следующих методов:
TIEHASH classname, LIST
DESTROY this
FETCH this, key
STORE this, key, value
DELETE this, key
EXISTS this, key
FIRSTKEY this
NEXTKEY this, lastkey
Обычного массива:
TIEHASH classname, LIST
DESTROY this
FETCH this, key
STORE this, key, value
[others TBD]
Скалярного типа:
TIEHASH classname, LIST
DESTROY this
FETCH this, key
STORE this, key, value
time
Возвращает количиство секунд начиная с 1 января 1970 г 00:00:00 UTC. Годы не разделяются на високосные.
times
Возвращает 4-х элементный массив значений:
($user, $system, $cuser, $csystem) = times;
где:
$user – пользовательское время процесса в секундах.
$system – системное время текущего процесса.
$cuser – время процесса-потомка текущего прцесса.
$csystem – его системное время.
tr///
Опрератор транслятор. Подробно смотри главу «Операторы».
truncate файл, длина
truncate выражение, длина
Усекает длину указанного файла.
uc выращение
Возвращает строку выражения в которой малые буквы заменены на заглавные.
ucfirst выражение
Возвращает строку выражения в которой первая буква заменена на заглавную.
umask выражение
umask
Устанавливает маску umask и возвращает старое значение.
Без аргумента возвращает текущее значение.
undef выражение
undef
Делает неопределенным значение выражения. Применяется только для скалярных переменных, целых массивов или подпрограмм. Всегда возвращает неопределенное значение.
unlink список
Удаляет файлы указанные в списке. Возвращает количество удаленных файлов. Только супервизор может удалять директории с файлами если Перл запущен с ключом -U.
unpack шаблон, выражение
Функция обратная pack(). Распаковывает строку выражения по указанному шаблону в массив значений. В скалярном контексте возвращает значение только первого элемента. Шаблоны такие же как и в pack().
Символ '%' в шаблоне означает что вы хотите получить вместо значения его контрольную сумму. По умолчанию 16 битовую.
untie переменная
Исключает переменную из класса указанного tie().
unshift массив, список
Противоположное shift. Помещает элементы списка в начало массива.
use модуль список
use модуль
Указывает библиотечный модуль из которого можно вызывать подпрограммы. Список перечисляет имена подпрограмм которые добавляются к текущей область имен. Если не указан то все имена.
Действие аналогично блоку:
BEGIN { require модуль; import модуль список; }
Сам модуль должен распологаться в системной области Перл файлов.
utime список
Изменяет дату обращения и модификации файлов из списка.
Первые два элемента списка должны указывать новое значение даты обращения и модификации.
Возвращает количество измененных файлов.
values хеш
Возвращает обычный массив со всеми значениями хеша.
В скалярном контексте возвращает количество значений хеша.
vec выражение, смещение, бит
Возвращает значени строки как вектор без знаковых целых.
wait
Ожидать окончание порожденного процесса. Возвращает PID для родительского процесса или -1 если нет процесса потомка.
Код завершения записывается в переменную $?.
waitpid PID, FLAGS
Ожидать окончания процесса потомка с указанным PID.
Возвращает либо PID этого процесса либо -1 если нет такого процесса. Код завершения записывается в перменную $?.
wantarray
Возвращает true если подпрограмма вызывается в списковом контексте и false – в скалярном.