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