Описанные в данной главе
переменные имеют в 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' -
игнорировать данный сигнал.
|