» язык
perl
» Главная
страница
» Вернуться
к содержанию ( Perl )
Встроенные
переменные
Описанные
в этой главе переменные имеют
в Perl специальные значения.
Они обозначаются несколько непривычно
для “глаза” программистов, так
как состоят обычно только из
двух символов, причем первый
это “$” символ, с которого начинаются
имена всех переменных, и произвольный
часто не буквенно-цифровой символ.
Если вы хотите пользоваться
их “нормальными” буквенными
синонимами, то вам нужно указать
в начале программы:
use
English;
Точно
так же если вы захотите пользоваться
переменными и методами текущего
указателя файлов вы можете написать:
use
FileHandle;
после
этого можно просто писать:
метод
указатель выражение
или
указатель
-> метод(выражение)
Ниже
приводятся имена как в короткой,
так и в длинной (словесной)
форме. Некоторые из встроенных
переменных имеют доступ только
на чтение, поэтому изменить
их значение просто невозможно.
$_
$ARG
Переменная
— по умолчанию для операторов
ввода и поиска. То есть если
в качестве аргумента не указана
никакая переменная, то используется
именно эта.
$цифра
Содержит
найденную подстроку в последнем
поиске, когда шаблон содержит
метасимволы в круглых скобках.
Цифра в данном случае, это номер
скобок. Первая подстрока имеет
номер 1.
$&
$MATCH
Найденная
подстрока в последнем поиске
по шаблону.
$`
Подстрока,
предшествующая найденной подстроке.
$'
$POSTMATCH
Подстрока,
последующая за найденной подстрокой.
$+
$LAST_PAREN_MATCH
Подстрока,
найденная в поиске с выбором
по “или”.
$*
$MULTILINE_MATCHING
Если
значение этой переменной установить
равным 1, то переменная, в которой
осуществляется поиск, будет
считаться многострочной, то
есть, содержащей символы “\
n” — перевод строки. Если значение
равно 0, то переменная считается
однострочной. В Perl версии
5 и выше не рекомендуется использовать
эту переменную.
$.
$INPUT_LINE_NUMBER $NR
Номер
прочитанной строки последнего
оператора ввода. Закрытие файла
вызывает очистку значения этой
переменной.
$/
$RS $INPUT_RECORD_SEPARATOR
Символ
— признак конца входной строки.
По умолчанию это “\ n”.
$|
$OUTPUT_AUTOFLUSH
Если
присвоить этой переменной ненулевое
значение, то будет сброс буфера
вывода после каждой операции
вывода. Значение по умолчанию
— 0.
$,
$OFS $OUTPUT_FIELD_SEPARATOR
Символ,
добавляемый оператором print
после каждого элемента из списка
параметров.
$\
$ORS $OUTPUT_RECORD_SEPARATOR
Символ,
добавляемый print после вывода
всех параметров.
$"
$LIST_SEPARATOR
Аналогичен
“$,”, но добавляется после каждого
элемента массива, указанного
в "....".
$;
$SUBSEP $SUBSCRIPT_SEPARATOR
Символ
— разделитель для эмуляции многомерных
массивов в хеш массивах. По
умолчанию “\ 034”.
$#
$OFMT
Формат
по умолчанию для вывода чисел.
$%
$FORMAT_PAGE_NUMBER
Формат
по умолчанию для вывода номеров
страниц.
$=
$FORMAT_LINES_PER_PAGE
Длина
одной страницы. По умолчанию
60 строк.
$-
$FORMAT_LINES_LEFT
Количество
оставшихся строк на странице.
$~
$FORMAT_NAME
Имя
формата текущего вывода. По
умолчанию имя указателя.
$^
$FORMAT_TOP_NAME
Имя
текущего формата для заголовка
страницы.
$:
$FORMAT_LINE_BREAK_CHARACTERS
Символы
переноса строки для многострочных
полей. В строке формата такие
поля начинаются символом “^”.
По умолчанию “\ n-”.
$^L
$FORMAT_FORMFEED
Символ
перевода формата (смены листа).
По умолчанию “\ f”.
$^A
$ACCUMULATOR
Текущее
значение аккумулятора функции
write() для format(). Значение
этой переменной можно увидеть
только при использовании функции
formline(), так как write()
очищает ее после каждого вывода.
$?
$CHILD_ERROR
Данная
переменная содержит статус завершения
таких процессов как: закрытие
pipe, завершение функций system(),
wait() и “...”.
$!
$ERRNO $OS_ERROR
В
числовом контексте возвращает
код ошибки errno. В строковом
— строку сообщения об ошибке.
Можно принудительно присвоить
этой переменной код ошибки,
что бы получить системное сообщение
для данного кода или установить
код завершения для функции die().
$@
$EVAL_ERROR
Сообщение
об ошибке последней команды
eval().
$$
$PID $PROCESS_ID
Номер
текущего процесса.
$<
$UID $REAL_USER_ID
Реальный
UID текущего процесса.
$>
$EUID $EFFECTIVE_USER_ID
Эффективный
UID текущего процесса.
$(
$GID $REAL_GROUP_ID
Реальный
GID текущего процесса.
$)
$EGID $EFFECTIVE_GROUP_ID
Эффективный
GID текущего процесса.
$O
$PROGRAM_NAME
Имя
файла программы. Если этой переменной
присвоить какое-нибудь значение,
то его можно видеть в команде
ps, что удобно для контроля
за состоянием программы.
$[
Номер
первого элемента массива или
символа строки. Значение по
умолчанию — 0.
$]
$PERL_VERSION
Строка
— сообщение версии Perl. Печатается
по команде perl -v Применяется
в программе для определения
рабочей версии Perl. В числовом
контексте это номер версии плюс
номер модификации / 1000.
$^D
$DEBUGGING
Текущее
значение ключа отладки “-D”.
$^F
$SYSTEM_FD_MAX
Номер
максимального системного описателя
файлов (system file descriptor).
Обычно это 2.
$^I
$INPLACE_EDIT
Текущее
значение inplace-edit возможности.
Для отключения используйте undef.
$^P
$PERLDB
Внутренний
флаг отладки. Применяется для
того, чтобы отладчик не отслеживал
самого себя.
$^T
$BASETIME
Время
в секундах с начала 1970 года
старта текущей программы.
$^W
$WARNING
Значение
флага “-w”. true — если включено
и false — выключено.
$^X
$EXECUTABLE_NAME
Команда
запуска Perl. Аналогично argv[0]
в С.
$ARGV
Имя
текущего файла, читаемого оператором
“<>”.
@ARGV
Массив
параметров строки запуска программы.
Внимание!
@#ARGV — меньше количества параметров
на 1, так как $ARGV[0] это первый
параметр (не имя программы).
@INC
Список
директорий диска, которые просматривает
Perl для выполнения команд do,
require или use.
%INC
Этот
хеш содержит имена директорий
для имен использованных файлов
командами do или require. Ключ
— имя файла, а значение — директория.
$ENV{
выражение}
Хеш
%ENV содержит значения переменных
окружения. Изменение этих значений
вызывает изменение окружения
для процессов потомков.
$SIG{
выражение}
Хеш
%SIG содержит имена подпрограмм
для таких системных сигналов
как INT, QUIT, PIPE, ... Значение
“DEFAULT” — для системной обработки.
“IGNORE” — игнорировать данный
сигнал.
Следующий
урок
|