Require выражение require
105require выражение
require
Если выражение - число, требует что бы текущая версия Perl была не ниже указанной. Если строка - считывает библиотечный файл с указанным именем, если он еще не прочитан. Последний оператор библиотечного файла должен возвращать true. Обычно это строка вида 1; Если расширение имени файла отсутствует, то по умолчанию принимается ".pm" В данной функции можно указывать путь расположения файла, а если библиотека расположена в стандартной системной области Perl, то вместо require предпочтительней использовать use().
Abs выражение
abs выражение
Абсолютное значение выражения
Accept NEWSOCKET GENERICSOCKET
accept NEWSOCKET, GENERICSOCKET
Открыть новый сокет по внешнему запросу. Аналогично системному вызову accept(). Возвращает адрес или false в случае неудачи.
Аддитивные операторы
Аддитивные операторы.
'+' | - арифметический плюс |
'-' | - арифметический минус |
'.' | - конкатенация (объединение) строк |
Alarm секунды
alarm секунды
Послать сигнал SIGALARM текущему процессу по истечении указанного промежутка времени. Не допустимо делать несколько вызовов одновременно в одном промежутке времени. Возвращает остаток времени предыдущего счетчика.
Atan2 Y X
atan2 Y, X
Арктангенс отношения Y к X в пределах от -pi до +pi.
Автозагрузка
Автозагрузка.
Если вы попытаетесь вызвать несуществующую функцию, то Perl немедленно выдаст сообщение об ошибке. Но если вы определите подпрограмму с именем 'AUTOLOAD', то она будет вызвана с теми же параметрами, а переменная $AUTOLOAD будет содержать имя несуществующей подпрограммы. Данный механизм очень удобен для средств отладки.
Bind сокет имя
bind сокет, имя
Назначить сетевой адрес сокету. Подобно системному вызову bind. Возвращает true в случае успеха и false иначе. Имя - пакетный адрес сокета.
Binmode файл
binmode файл
Открыть файл для двоичного (binary) режима доступа. В обычном режиме при вводе символы CR LF транслируются в LF, а при выводе LF транслируется в CR LF.
Bless ссылка класс bless ссылка
bless ссылка, класс
bless ссылка
Данная функция определяет что объект указанный ссылкой принадлежит классу. Если класс не указан то он относится к текущему классу. Обычно это последний оператор в конструкторе объекта. Необходимо обязательно указывать имя класса если определяемый объект может наследоваться классом-потомком.
Блоки и оператор switch
Блоки и оператор switch.
Блок не зависимо от того имеет он метку или нет семантически представляет собой цикл который выполняется один раз. Поэтому действие операторов цикла next, last, redo - аналогично описанному выше. Блоки удобны для построения switch (переключатель) структур. В Perl нет специального оператора switch подобного языку С поэтому вы сами можете создавать удобные для вас конструкции. Опыт автора показывает что для простоты написания лучше всего подходит конструкция вида if ... elsif ... else ... хотя можно сочинить и нечто подобное:
SWITCH: { if ($i ==1 ) { .....; last SWITCH; } if ($i ==2 ) { .....; last SWITCH; } if ($i ==3 ) { .....; last SWITCH; } $default = 13; }Выбирайте сами по своему вкусу.
Caller выражение caller
caller выражение
caller
Возвращает контекст вызова текущей подпрограммы. В скалярном контексте true если это подпрограмма или процедура вызванная операторами eval() или require() и false - иначе. В списковом это список ($package, $filename, $line), где
$package - имя пакета $filename - имя файла пакета $line - номер строки откуда был сделан вызов.Если указано выражение то возвращается список:
($package, $filename, $line, $subroutine, $hasargs, $wantargs)Выражение определяет "глубину" вложенности просмотра стека вызовов.
$subroutine - имя подпрограммы $hasargs - имеющиеся аргументы $wantargs - необходимые аргументыПрименение данной функции в DB пакете возвращает более детальную информацию. К списку аргументов добавляется список @DB::args.
Целочисленная арифметика
Целочисленная арифметика.
По умолчанию Perl выполняет арифметику с плавающей запятой, но если вы укажете:
use integer;то компилятор будет использовать целочисленную арифметику до конца текущего блока, хотя вложенный блок может это и отменить в своих пределах с помощью:
no integer;Chdir выражение
chdir выражение
Перейти в директорию указанную выражением. Если выражение отсутствует то перейти в "домашнюю" директорию. Возвращает true в случае успеха и false - неудачи.
Chmod список
chmod список
Изменить права доступа к файлам указанным в списке. Первый элемент в списке - числовое ,обычно восьмеричное значение прав. Возвращает количество файлов которым были изменены права.
Chomp переменная chomp список chomp
chomp переменная
chomp список
chomp
Удаляет в конце строки символ указанный переменной $/. Обычно это 'LF'. Возвращает количество удаленных символов. Если переменная не указана то используется переменная $_. Если указан список то обрабатывается каждая строка списка и возвращается общее количество удаленных символов.
Chop переменная chop список chop
chop переменная
chop список
chop
Полностью аналогично функции chomp но всегда удаляет последний символ строки.
Chown список
chown список
Изменить "владельца" и "группу" файлов списка. Первый элемент - номер нового владельца, второй номер новой группы а далее список файлов. В большинстве Unix-систем вы не сможете сменить владельца если вы не суперпользователь, но можете изменить группу если это одна из ваших "вторичных" групп.
Chr число
chr число
Возвращает символ с указанным кодом кодировки.
Chroot директория
chroot директория
Сделать "корневой" указанную директорию. "Корневая" - значит внутри программы на нее можно ссылаться как '/'.
Цикл for
Цикл for.
LABEL for (EXPR1; EXPR2; EXPR3) BLOCK
Оператор for полностью аналогичен оператору for в С. В перед началом цикла выполняется EXPR1, если EXPR2 = true выполняется блок, затем выполняется EXPR3.
Цикл foreach
Цикл foreach.
LABEL foreach VAR (LIST) BLOCK
Переменной VAR присваивается поочередно каждый элемент списка LIST и выполняется блок. Если VAR опущено, то элементы присваиваются встроенной переменной $_. Если в теле блока изменять значение VAR то это вызовет изменение и элементов списка т.к. VAR фактически указывает на текущий элемент списка. Вместо слова foreach можно писать просто for - это слова синонимы.
Close файл
close файл
Закрыть открытый файл или поток. Можно не использовать, если один и тот же файл открывается повторно, т.к. он будет автоматически закрываться новым вызовом open().
Closedir директория
closedir директория
Закрыть директорию, открытую функцией opendir().
Connect сокет имя
connect сокет, имя
Связаться с удаленным сокетом. Данная функция подобна системному вызову connect(). Возвращает true в случае успеха и false при ошибке.
Cos выражение
cos выражение
Косинус выражения в радианах.
CPAN
CPAN
Программисты всего мира, работающие с Perl, создали общедоступную библиотеку модулей CPAN. Она доступна через Интернет и содержит огромное количество различных по назначению модулей. К ним относятся документаторы, системные интерфейсы, интерфейсы работы с базами данных, работа в сети, с файлами, Интернет-броузеры, системы поиска, огромное количество CGI скриптов для Web серверов и многое-многое другое. Список некоторых CPAN серверов вы можете найти в приложении.
Crypt текст salt
crypt текст, salt
Шифрация текста. Аналогично системному crypt().
Dbmclose хеш
dbmclose хеш
Закрывает связь между хеш и базой данных.
Dbmopen хеш база режим
dbmopen хеш, база, режим
Ассоциировать указанный хеш и базу в определенном режиме. Дело в том, что в Perl реализован очень удобный механизм работы с базами данных типа dbm, ndbm, sbdm, gdbm и Berkeley DB. Для этого нужно связать (открыть) базу под именем хеша. Вся работа с записями базы выполняется так, будто это обычный хеш (ассоциативный массив). Более подробно смотрите описание функции AnyDBM().
Define выражение
define выражение
Возвращает true, если значение определено (существует) и false, если нет. Многие операции завершаются неопределенным значением, например чтение после конца файла, использование неопределенных переменных, системные ошибки и т.д. Данная функция позволяет различать нулевое и неопределенные значения, определенность или неопределенность функций или ссылок. При использовании определенности ключа в хеше она возвращает определен данный ключ или нет, но не существует он или нет.
Декларации (объявления)
Декларации (объявления).
Perl имеет свободный формат. Комментарии начинаются с символа '#' и продолжаются до конца строки. Декларации могут использоваться в любом месте программы так же как и предложения (statements), но действуют они только в фазе компиляции программы. Обычно их помещают или в начале или в конце программы. Декларация подпрограмм позволяет использовать имя подпрограммы как списковый оператор, начиная с момента декларирования.
Delete выражение
delete выражение
Удалить значение из хеша. Возвращает удаляемое значение или неопределенность, если ничего не удаляется. Удаление из массива окружения $ENV{} - изменяет окружение. Удаление из хеша связанного с базой данных - удаляет запись в базе данных.
Die список
die список
Если программа не была запущена из eval(), данная функция выводит список в поток STDERR и завершает работу программы с кодом из переменной $!. Если $! содержит 0, то с кодом ($? >> 8). Если и это 0, то с кодом 255. При вызове из eval() сообщение об ошибке заносится в переменную $@, и eval() завершается с неопределенным значением. Это позволяет отрабатывать ошибочные ситуации, не завершая головной модуль. Если строка из списка не завершается символом '\n', то дополнительно печатается номер строки скрипта, откуда вызвана функция и номер входной строки, если таковой имеется.
Do BLOCK
do BLOCK
Это не совсем функция. Здесь возвращается значение последнего оператора блока. Когда используется циклический модификатор BLOCK исполняется перед проверкой условия цикла в отличии от обычных циклов.
Do подпрограмма
do подпрограмма
Устаревший метод вызова подпрограмм.
Do выражение
do выражение
Значение выражения воспринимается как имя файла Perl скрипта. Изначально это применялось для включения подпрограмм библиотеки. Сейчас правильней использовать вызовы use() и require(), которые обеспечивают контроль ошибок и завершения.
Dump метка
dump метка
Выполнение "дампа" текущей памяти. Применялось для возможности использовать программу undump, чтобы включить текущий исполняемый код в программу после инициализации всех переменных. Выполнение этой новой программы будет начинаться оператором goto метка. Если метка опущена, то запуск сначала.
Внимание! Файлы, открытые до момента дампа, не будут открытыми в момент исполнения новой программой.
Each хеш
each хеш
Возвращает 2-элементный массив. Первый элемент - ключ второй - значение следующего элемента хеша. Позволяет "просматривать" все значения хеша в определенном порядке. Сброс переменной цикла происходит только после прохождения всего массива.
Eof файл eof() eof
eof файл
eof()
eof
Возвращает 1, если выполняется чтение после конца или чтение из не открытого файла. Аргументом должно быть выражение, возвращающее существующий указатель файла. Данную функцию нельзя использовать для чтения файлов, открытых как терминалы. Если аргумент не указан, то используется последний читаемый файл. Использование в форме eof() целесообразно применять в циклах while(<>) для определения конца только последнего файла из списка. Применяйте eof(ARGV) или eof для определения конца каждого файла из списка.
Eval выражение eval блок
eval выражение
eval блок
Выражение сканируется и выполняется как обычная Perl программа. Это делается в контексте текущей программы, поэтому можно использовать уже определенные переменные и подпрограммы. Возвращается результат последнего оператора в блоке или значение оператора return. Если обнаружится синтаксическая ошибка или выполнится оператор die, то возвращается неопределенное значение, а переменная $@ содержит сообщение об ошибке. Если ошибки не было, то $@ содержит нулевую строку. При отсутствии аргумента берется значение переменной $_.
Exec список
exec список
Выполняется системная команда из списка, и выполнение программы завершается. Если вам необходимо вернуться, то лучше применяйте функцию system(). Если в списке количество аргументов больше 1 или список - это массив с количеством элементов больше 1, то выполняется системный вызов execvp() с аргументами из списка. Если один скалярный аргумент, то он сканируется на обработку метасимволов, и если они присутствуют, то полученные аргументы передаются интерпретатору /bin/sh -c для дальнейшей обработки. Если метасимволов нет, то аргумент расщепляется на слова и передается системному вызову execvp(), что более эффективно.
Внимание! exec() и system(0) не сбрасывают буфер ввода/вывода, поэтому необходимо установить переменную $| для предотвращения потери выходной информации.
Exists выражение
exists выражение
Возвращает true, если существует указанный ключ хеша, даже если не определено его значение.
Exit выражение
exit выражение
Выполнение программы завершается с кодом выражения.
Exp выражение
exp выражение
Возвращает e (основание натурального логарифма) в степени выражения.
Fcntl файл функция скаляр
fcntl файл, функция, скаляр
Выполняет системный вызов fcntl(). Для использования обязательно выполнить use Fcntl;
Fileno файл
fileno файл
Возвращает описатель файла для данного указателя файла.
Flock файл операция
flock файл, операция
Системный вызов flock()
Fock
fock
Системный вызов fock(). Возвращает pid потомка для родителя и 0 - для потомка в случае успеха, иначе - неопределенное значение.
Format
format
Декларативная функция Perl. Определяет формат вывода для оператора write. Подробно смотрите главу Форматы.
Форматы
Форматы.
В Perl реализован удобный метод создания форматированных отчетов. С помощью оператора format вы описываете заголовки, размеры полей, указываете положение данных на листе в удобной текстовой форме. Затем выполняете команду write(файл), которая выводит отформатированные данные в указанный файл.
Оператор format имеет следующий синтаксис:
format имя = FORMLIST .Обратите внимание на то, что описание формата идет после строки format и заканчивается символом '.' в начале строки.
Здесь 'имя' - это имя формата, такое же как и имя указателя выходного файла. Если 'имя' отсутствует то значение по умолчанию - STDOUT.
FORMLIST - это строки формата. Они бывают трех типов:
Комментарий. Строка начинается символом '#'. Описатель полей данных (picture). Строка аргументов используемых описателем.Описатель - это строка, которая выводится в виде "как есть" за исключением специально обозначенных форматов полей данных. Каждое поле начинается либо символом '@', либо '^'. В описательной строке указывается только положение и вид выводимых данных, но не имена полей и переменных. Для этого предназначена следующая строка аргументов которая следует всегда после описателя и содержит имена переменных или целые выражения в порядке указанном описателем.
Размер и вид поля в описателе обозначается следующими символами:
"<<<<" | - выравнить значение по правому краю. |
">>>>" | - -//- по левому. |
"||||" | - -//- по центру. |
"####.###" | - формат числа с точкой. |
"@*" | - многострочная строка. Данные выводятся в колонку. |
Размер поля равен количеству указанных символов.
Символ '^' в начале поля имеет специальное значение.
Так:
для строчного скаляра:
"^