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 – в скалярном.

 
   warn список
   Выодит в стандартный поток ошибок STDERR сообщение аналогично die(), но не прекращает работу программы.

 
   write файл
   write выражение
   write
   Выводит в файл форматированные данные по оператору format. По умолчанию имя формата совпадает с именем указателя файла. Имя файла-по умолчанию можно изменить функцией select(), а имя формата при этом надо присвоить переменной $~. Заголовок листа пишется автоматически. Если на листе не хватает места для вывода то выводится «перевод формата» и специальная форма заголовка листа затем сами записи. По умолчанию имя формата заголовка листа состоит из имени указателя файла и добавленной строки «_TOP». Динамически это млжно делать присваивая формат переменной $^. Количество оставшихся строк листа содержится в переменной $– и если присвоить ей 0 то произойдет смена листа. Подробно описание форматов смотри в главе «Форматы».

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


'@' или '%' – все оставшиеся параметры как список
   '$' – скаляр
   '&' – безимянная подпрограмма
   '*' – ссылка на таблицу имен
   ';' – разграничитель обязательных и не обязательных параметтров.

 

Ссылка как параметр.
   Иногда нужно в качестве параметра передать подпрограмме не значение элемента массива а ссылку на него, что бы подпрограмма могла изменить значение элемента. Для этого в Перл к имени переменной добавляется символ '*' Подбное выражение называют 'type glob' так как в Юниксе символом '*' обозначают «все возможные значения». Поэтому '*' для массива означает «все элементы массива».
   Для скаляров употряблять '*' не имеет смысла т.к. они и так передаются ссылкой и вы можете изменять значение параметра изменяя например переменную $_[0].

 
Переопределение встроенных функций.
   Большинство встроенных функций Перл можно переопределить своими собственными. Обычно это делают для удобства совместимости Перл для разных платформ систем.
   Для этого нужно перечислить имена этих функций в виде:
   use subs 'функция1', 'функция2' ....;
   и далее в модуле определить сами функции.

 
Автозагрузка.
   Если вы попытаетесь вызвать не существующую функцию то Перл выдаст немедленно сообщение об ошибке. Но если вы определите подпрограмму с именем 'AUTOLOAD' то она будет вызвана с теми же параметрами а переменная $AUTOLOAD будет содержать имя не существующей подпрограммы. Данный механизм очень удобен для средств отладки.


'@' либо '^'.
   В описательной строке указывается только положение и вид выводимых данных, но не имена полей и переменных.
   Для этого предназначена следующая строка аргументов которая следует всегда после описателя и содержит имена переменных или целые выражения в порядке указанном описателем.
   Размер и вид поля в описателе обозначается следующими символами: 
   «>>>>» – выровнить значение по правому краю.
   «<<<<» – -//– по левому.
   «||||» – -//– по центру.
   «####.###» – формат числа с точкой.
   «@*» – многострочная строка. Данные выводятся в колонку.
   Размер поля равен количеству указанных символов.
   Символ '^' в начале поля имеет специальное значение.
   Так:
   «^####» – пусто если переменная не определена.
   для строчного скаляра:
   «^<<<<<» – Выводится сколько возможно символов, а значение переменной меняется на остаток вывод которого можно продолжить на следующих строках которые могут иметь свои поля.
   Пример:
   #!/usr/local/bin/perl
   #
   # Программа печати пригласительного билета
   #
   $кому = «Чапаеву Василию Ивановичу»;
   $от_кого = «Компания МММ»;
   $адрес = «Москва, ул. Петровка, д 38»;
   $текст = "Уважаемый Василий Иванович! Компания МММ имеет честь пригласить
   Вас и Ваших близких на презентацию наших новых хромовых сапог, сделанных
   на уровне мировых стандартов качества и дизайна.";
   format STDOUT =
   П Р И Г Л А С И Т Е Л Ь Н Ы Й Б И Л Е Т
   Кому: @<<<<<<<<<<<<<<<<<<<<<<<<<< | ^|||||||||||||||||||||||||||||||
   $кому, $текст
   | ^|||||||||||||||||||||||||||||||
   $текст
   От кого: @<<<<<<<<<<<<<<<<<<<<<<< | ^|||||||||||||||||||||||||||||||
   $от_кого, $текст
   | ^|||||||||||||||||||||||||||||||
   $текст
   Адрес:@<<<<<<<<<<<<<<<<<<<<<<<<<< | ^|||||||||||||||||||||||||||||||
   $адрес, $текст
   | ^|||||||||||||||||||||||||||||||
   $текст
   | ^|||||||||||||||||||||||||||||||
   $текст
   | ^|||||||||||||||||||||||||||||||
   $текст
   Отпечатано в типографии ИТУ 38
   .
   write(); # Вывод данных.
   exit 0; # Конец программы

 
   Результат:

 
   П Р И Г Л А С И Т Е Л Ь Н Ы Й Б И Л Е Т
   Кому: Чапаеву Василию Ивановичу | Уважаемый Василий Иванович!
   | Компания МММ имеет честь
   От кого: Компания МММ | пригласить Вас и Ваших близких
   | на презентацию наших новых
   Адрес:Москва, ул. Петровка, д 38 | хромовых сапог, сделанных на
   | уровне мировых стандартов
   | качества и дизайна.
   |
   Отпечатано в типографии ИТУ 38
   Специальные переменные:
   $~ – построчный формат содержимого.
   $^ – формат заголовка листа.
   $% – номер листа.
   $= – строк в листе.
   Если вы хотите использовать одни и те же форматы для разных файлов то самый простой путь:
   use FileHandle; # Указать в начале программы
   format_name файл имя_формата; # Формат содержимого листа.
   format_top_name файл имя_формата; # Формат заголовка листа.
   write(файл); # вывод данных.

 
   Здесь 'файл' имеется ввиду указатель файла полученный командой open();
   Если вам нужно в теле листа выводить разного рода форматы (например заголовки групп или отбивку листа) то применяйте format_name.



http://www.perl.org – Специальный Перл-сервер
   http://www.ora.com – Книги по Юникс издательства O`Reily
   ftp://ftp.perl.com – Специализированный FTP сервер
   http://franz.ww.tu-berlin.de/modulelist – Модули Перл.