Formline формат список
formline формат, список
Внутренняя функция, используемая в format. Форматирует вывод параметров из списка. Результат помещается в переменную $^A Функция write просто выводит значение этой переменной, но ее так же можно читать, а затем обнулять. Обычно format выполняет один вызов formline для одной строки формы, но formline не разделяет строки формата. Это значит что символы '~' и '~~' рассматривают весь формат как одну строку, поэтому необходимо использовать многострочные формы для описания одной записи формата.
и возвращает символ из указанного
getc файл
getc
Читает и возвращает символ из указанного файла. Если файл не указан, то читается STDIN. После конца файла возвращает пустую строку.
Возвращает текущий login из файла
getlogin
Возвращает текущий login из файла /etc/utmp Не применяйте для идентификации пользователя, он не так сильно "закрыт" как getpwuid().
Возвращает упакованный адрес удаленного сокета.
getpeername сокет
Возвращает упакованный адрес удаленного сокета.
с указанным PID. Если аргумент
getpgrp PID
Возвращает группу процесса с указанным PID. Если аргумент отсутствует, возвращает группу текущего процесса.
Возвращает PID родительского процесса.
getppid
Возвращает PID родительского процесса.
Возвращает текущий приоритет процесса, группы
getpriority WHICH, WHO
Возвращает текущий приоритет процесса, группы процессов или пользователя.
Возвращает упакованный адрес сокета локальной
getsockname сокет
Возвращает упакованный адрес сокета локальной машины.
getsockopt сокет, уровень, опция
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.
Группа системных вызовов
Группа системных вызовов:
getpwnam NAME getgrnam NAME gethostbyname NAME getnamebyname NAME getprotobyname NAME getpwuid UID getgrid GID getservbyname NAME, PROTO gethostbyaddr ADDR, ADDRTYPE getnetbyaddr ADDR, ADDRTYPE getprotobynumber NUMBER getservbyport PORT, PROTO getpwent gethostent getnetent getprotoent getservent setpwent setgrent sethostent STAYOPEN setnetent STAYOPEN setprotoent STAYOPEN setservent STAYOPEN endpwent endgrent endhostent endnetent endprotoent endservent
Все эти функции аналогичны одноименным системным вызовам. В списковом контексте возвращают следующие списки:
($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell) = getpw* ($name, $passwd, $gid, $members) = getgr* ($name, $aliases, $addrtype, $length, @addrs) = gethost* ($name, $aliases, $addrtype, $net) = getnet* ($name, $aliases, $proto) = getproto* ($name, $aliases, $port, $proto) = getserv*В скалярном контексте возвращается имя или что-то другое, в зависимости от типа функции. Элемент $members в вызове getgr содержит разделенные пробелом имена членов группы. @addrs содержит IP адреса компьютеров в сети Интернет в упакованном виде. Для распаковки применяйте: ($a, $b, $c, $d) = unpack('C4',$addr[0]);
Hex выражение
hex выражение
Воспринимает выражение как строку шестнадцатеричных цифр и возвращает десятичное значение.
If (EXPR) BLOCK Вычисляется логическое
if (EXPR) BLOCK - Вычисляется логическое выражение EXPR и если true блок выполняется.
Именованные унарные операторы
Именованные унарные операторы.
Фактически это функции с одним аргументом. Круглые скобки можно опускать.
Import
import
В Perl нет встроенной функции import, но есть метод, с помощью которого модули могут экспортировать область имен другим модулям. Подробно смотрите функцию use().
Index строка подстрока позиция index строка подстрока
index строка, подстрока, позиция
index строка, подстрока
Возвращает позицию первого вхождения подстроки в строке, начиная с указанной позиции. Если позиция отсутствует, то сравнение начинается с начала строки. Отсчет позиции ведется с 0, если только не изменено значение встроенной переменной $[. Если подстрока не найдена, то результат меньше первой позиции на 1. Обычно это -1.
Int выражение
int выражение
Возвращает целую часть выражения.
Интернет ссылки и литература
Интернет - ссылки и литература.
Очень полезные USENET конференции:
comp.lang.perl.announce - Различные объявления и сообщения. comp.lang.perl.misc - Место для вопросов и обсуждений. comp.lang.perl.modules - Модули Perl. comp.lang.perl.tk - Perl и Tcl/tk.WWW сервера:
Специальный Perl-сервер Книги по Unix издательства O`Reily Специализированный FTP сервер Список модулейСписок литературы.
При написании книги автор в основном пользовался описанием Perl "Perl Programmers Reference Guide".
Наиболее известная зарубежная литература:
Ioctl FILEHANDLE FUNCTION SCALAR
ioctl FILEHANDLE, FUNCTION, SCALAR
Выполняет системный вызов ioctl(). В начале программы необходимо указать: require "ioctl.ph";
Join выражение список
join выражение, список
Соединяет строки списка или массива в одну строку с кодом разделителя, равному выражению.
Keys хеш
keys хеш
Возвращает массив всех ключей хеша. В скалярном контексте - количество ключей. Порядок следования ключей аналогичен порядку в each функции.
Kill список
kill список
Послать сигнал (первый элемент) указанным в списке процессам. Возвращает количество процессов которые сигнал приняли.
Классы
Классы.
В Perl нет специального синтаксиса для классов. Но функционально полноценными классами могут быть модули. При этом подпрограммы модуля становятся методами, а с помощью массива @ISA можно реализовать механизм наследования в классах. Более подробно классы описаны отдельно.
Конструкторы и деструкторы
Конструкторы и деструкторы.
Конструктор - это подпрограмма, которая выполняется в момент создания объекта, а деструктор - удаления объекта. Для модуля это подпрограммы с именами BEGIN и END. При определении этих подпрограмм слово sub можно опускать.
Конструктор BEGIN выполняется сразу как только возможно, т.е. как только он определен, даже не завершая дальнейший разбор программы. Можно указать несколько блоков BEGIN. Они будут выполняться один за другим в порядке определения.
Деструктор END выполняется последним как только возможно, т.е. при завершении работы интерпретатора. Можно указать несколько блоков END, при этом они будут выполняться в обратном определению порядке.
Конструкторы скаляров
Конструкторы скаляров.
Числа пишутся стандартно:
123 123.123 0.12 .12E-10 0xABCD # Шестнадцатиричная запись 0377 # Если 0 в начале - восьмеричная 123_456_123 # Так тоже можно для удобства чтения.Строки ограничиваются одинарными (') или двойными (") кавычками:
'Равняйсь, смирно!' "Построимся и спасемся."Способов обозначения строк очень много. Смотрите описание оператора qq.
В хеше можно опускать кавычки, если индекс не содержит пробелов.
Конструкторы списков
Конструкторы списков.
Список - множество значений, перечисленных через запятую и заключенных в круглые скобки. В списковом контексте список возвращает последний элемент списка.
Контекст
Контекст.
Большое значение для правильного употребления встроенных функций имеет контекст использования результата этих функций, т.к. в противном случае они возвращают совершенно "непонятный" результат. В Perl имеется два главных контекста: скалярный и список (list). Проще говоря, если в левой части выражения имеется ввиду одно единственное значение, то это скалярный контекст. Если множество значений - список.
Last метка last
last метка
last
Функция аналогичная break в С. Прерывает цикл и переходит на указанную метку. Если метки нет на ближайший внешний цикл. Блок continue не выполняется.
Last подобен оператору break в
last - подобен оператору break в языке С. Немедленно прерывает цикл. Блок continue пропускается.
Lc выражение
lc выражение
Преобразовать строку в буквы нижнего регистра.
Lcfirst выражение
lcfirst выражение
Заменить первую букву строки на малую.
Length выражение
length выражение
Возвращает длину строки выражения.
Link OLDFILE NEWFILE
link OLDFILE, NEWFILE
Создать файл NEWFILE связанный с файлом OLDFILE.
Listen SOCKET QUEUESIZE
listen SOCKET, QUEUESIZE
Выполнить системный listen().
Local список
local список
Объявляет перечисленные переменные как локальные в текущем блоке или подпрограмме. Если указано два и более имени, их необходимо заключить в круглые скобки. Предпочтительней использовать функцию my().
Localtime выражение
localtime выражение
Преобразовать 9-элементный массив, возвращаемый функцией time, относительно местного времени. Употребляется как:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);Log выражение
log выражение
Возвращает натуральный логарифм выражения.
Логические операторы && (AND) и || (OR)
Логические операторы && (AND) и || (OR).
'&&' | - если левое выражение возвращает false, правое не выполняется. |
'||' | - если левое выражение возвращает true, правое не выполняется. |
Отличие от подобных операторов в С заключается в том, что в С возвращаемое значение либо 0, либо 1, тогда как в Perl возвращается результат выражения.
Lstat файл lstat выражение
lstat файл
lstat выражение
То же что и системный вызов stat(), но касательно ссылки на файл, а не самого файла.
M//
m//
Оператор совпадения. Смотри главу Операторы
Map блок список map выражение список
map блок, список
map выражение, список
Выполняет блок или выражение для каждого элемента списка. Возвращает список результатов.
Mkdir директория права
mkdir директория, права
Создать директорию с указанными правами доступа. Возвращает 1 при успехе, и 0 при неудаче.
Модули (packages)
Модули (packages).
Таблицы имен Конструкторы и деструкторы Классы Создание библиотеки Pragma библиотеки Стандартные библиотеки CPAN
В Perl реализован механизм модулей. Модуль это группа подпрограмм и переменных обычно включенных в один файл. Внутри одного модуля можно определить другой модуль. Начало модуля определяется директивой:
packages имя_модуля;Конец модуля это конец блока или файла. Головной модуль имеет по умолчанию имя main. На имя внутри модуля можно ссылаться, добавляя '::' после имени модуля.
Например:
$main::var1 - переменная в головном модуле. ::var1 - то же самое. Имя main можно опускать. $модуль1::var1 - переменная в модуле 'модуль1' $модуль1::модуль2::var1 - Модуль2 содержится в модуле 1.Только идентификаторы, начинающиеся с буквы или символа '_', хранятся в пространстве имен текущего модуля. Остальные хранятся в пространстве головного модуля main. Кроме этого имена STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC и SIG так же хранятся в головном модуле.
Msgctl ID CMD ARG
msgctl ID, CMD, ARG
Системный вызов msgctl() System V
Msgget KEY FLAGS
msgget KEY, FLAGS
Системный вызов msgget() System V
Msgrcv ID VAR SIZE TYPE FLAGS
msgrcv ID, VAR, SIZE, TYPE, FLAGS
Системный вызов msgrcv() System V
Msgsnd ID MSG FLAGS
msgsnd ID, MSG, FLAGS
Системный вызов msgsnd() System V
Мультипликативные операторы
Мультипликативные операторы.
'*' | - арифметическое умножение |
'/' | - арифметическое деление |
'%' | - арифметический модуль |
'x' | - оператор повторения |
В скалярном контексте возвращает строку левой части, повторенную величиной, указанной в правой части. В списковом контексте, если в левой части список, то в круглых скобках - повторенный список.