PERL - статьи

       

П2.4.3 Зарезервированные переменные


В Perl есть имена имеющие специальное значение. Многие из них аналогичны зарезервированным именам в shell.
Если вы хотите использовать длинные имена переменных, в заголовке программы требуется сказать:
use English;
Многие переменные доступны только для чтения, то есть при попытке присвоения такой переменной какого-либо значения напрямую или по ссылке происходит ошибка.

$_ В эту переменную по умолчанию происходит ввод, присваивание, в нее складываются результаты поиска по заданному образцу. while(<>){...}или, что то же самое: while($_= <>) {...}

$<digit> Эта переменная была описана в предыдущем параграфе. Она доступна только для чтения, так же как и переменные $&, $`, $' и $+.

$. Эта переменная содержит номер строки, которая была почитана последней из файла, который был прочитан последним. Она также доступна только для чтения.

$/ Содержит символ по которому разделяются вводимые записи. По умолчанию содержит символ перевода строки. Она похожа на переменную RS из awk.

$| По умолчанию имеет значение 0. Если содержит ненулевое значение, то происходит сброс буферов каждый раз после осуществления вывода (на печать, на экран и т.д.).

$, Содержит символ-разделитель полей для оператора печати. Подобна переменной OFS в awk.

$ Содержит символ-разделитель записей для оператора печати. Подобна переменной ORS в awk. (Вы можете определить $ вместо того, чтобы печатать n в конце печати.)

$" Подобна переменной $,. Но используется при обращении к списку величин в двойных кавычках (или другой строке, которая требует интерпретации). По умолчанию содержит символ пробел.

$; Содержит символ-разделитель для эмуляции многомерных хэшей. Если ссылаться на такой элемент хэша как $foo{$a,$b,$c} то реально это будет происходить так: $foo{join($;,$a,$b,$c)}. Не путайте с @foo{$a,$b,$c}, так как это тоже самое, что($foo{$a},$foo{$b},$foo{$c}). По умолчанию содержит значение \034 такое же как переменная SUBSEP в awk.

$# Формат для печати чисел. Подобна переменной OFMT в awk. Первоначально содержит значение %.20g.

$% Содержит номер текущей выводимой страницы.

$= Содержит длину текущей страницы (количество печатных срок), обычно содержит значение 60.

$- Содержит значение, определяющее количество оставшихся на странице строк, например количество еще не напечатанных строк для печатного канала вывода.

$~ Содержит имя текущего формата сообщений. Обычно имя дескриптора файла.

$^ Содержит имя текущего формата заголовка страницы. Обычно содержит имя дескриптора файла с добавлением в конце _TOP

$: Содержит множество символов после которых вывод сроки может быть прерван и начат снова после перевода строки.

$! Если эта переменная используется в числовом контексте, то содержит текущее значение errno (номер ошибки) со всеми обычными сообщениями. В строковом контексте содержит соответствующее системное сообщение об ошибке.

$@ Содержит сообщение о синтаксической ошибке, допущенной во время исполнения последней команды eval(). Если содержит значение 0, то команда была исполнена корректно. Но заметьте, что сообщения не накапливаются в этой переменной.

$$ Содержит идентификатор текущего процесса.

$< Содержит идентификатор пользователя (UID), которому принадлежит текущий процесс.

$> Содержит эффективный UID текущего процесса.

$( Содержит идентификатор группы (GID) пользователя, которому принадлежит текущий процесс.

$) Содержит эффективный GID текущего процесса.


$0 Содержит имя файла, в котором находится исполняемая программа.

$ARGV Содержит имя текущего файла, из которого происходит чтение.

@ARGV Содержит массив аргументов командной строки, которые были переданы программе.

@INC Содержит список точек входа в программу, в которых используются конструкции do EXPR, require и use.

%INC Содержит входы для каждого файла, который включается посредством использования операторов do или require. Ключами являются имена файлов, а значениями места их расположения.

%ENV Содержит текущее окружение процесса. Изменением содержимого хэша можно изменить окружение порожденного (дочернего) процесса.

%SIG Этот хэш используется для установки обработчиков различных сигналов. Например: sub handler {

local($sig) = @_;

print "Caught a SIG$sig - shutting down\n";

close(LOG);

exit(0);

}

$SIG{'INT'} = 'handler';

$SIG{'QUIT'} = 'handler';

...

$SIG{'INT'} = 'DEFAULT';

$SIG{'QUIT'} = 'IGNORE';


Содержание раздела