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';
[Назад]
[Содержание]
[Вперед]
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|