Приложение 22.
Специальные переменные PERL

Ниже перечислены все специальные переменные PERL 5.6. Помните, что для использования длинных имен в начало программы нужно включить директиву use English. В таблице использованы следующие обозначения типа переменных:

  • G — глобальная переменная, требует локализации в подпрограммах;
  • С — переменная зависит от контекста и не требует локализации;
  • L — переменная является локальной в текущем блоке.
Таблица П22.1. Специальные переменные PERL
Название Тип Описание
Краткое Длинное
$_ $ARG G Поле ввода и сопоставления с образцом по умолчанию.
$n, где n = 1, 2, … L n-я запомненная подстрока при последнем сопоставлении.
$& $MATCH L Последняя найденная подстрока при сопоставлении.
$` $PREMATCH L Подстрока перед последней найденной подстрокой.
$' $POSTMATCH L Подстрока после последней найденной подстроки.
$+ $LAST_PAREN_MATCH L Последняя запомненная подстрока.
@+ @LAST_MATCH_END L Массив смещений до концов успешно найденных подстрок.
@- @LAST_MATCH_START L Массив смещений до начал успешно найденных подстрок.
$* $MULTILINE_MATCHING G Режим многострочного сопоставления (устарела).
$. $INPUT_LINE_NUMBER, $NR G Номер последней считанной записи.
$/ $INPUT_RECORD_SEPARATOR,
$RS
G Разделитель записей при вводе (по умолчанию "\n").
$| $OUTPUT_AUTOFLUSH C Управляет сбросом буферов вывода на диск.
$, $OUTPUT_FIED_SEPARATOR, $OFS G Разделитель полей при выводе (по умолчанию пуст).
$\ $OUTPUT_RECORD_SEPARATOR,
$ORS
G Разделитель записей при выводе (по умолчанию пуст).
$" $LIST_SEPARATOR G Разделитель элементов списков при интерполяции.
$; $SUBSCRIPT_SEPARATOR, $SUBSEP G Разделитель индексов многомерных массивов (по умолчанию "\034").
$# $OFMT G Формат вывода при печати чисел (устарела).
$% $FORMAT_PAGE_NUMBER C Номер текущей страницы текущего канала вывода.
$= $FORMAT_LINES_PER_PAGE C Текущая длина страницы текущего канала вывода (по умолчанию 60).
$- $FORMAT_LINES_LEFT C Число строк, оставшихся на текущей странице текущего канала вывода.
$~ $FORMAT_NAME C Название текущего формата отчетов для текущего канала вывода.
$^ $FORMAT_TOP_NAME C Название текущего формата заголовков страниц для текущего канала вывода.
$: $FORMAT_LINE_BREAK_CHARACTERS G Текущий набор символов, разрешающих разрыв строки вывода (по умолчанию " \n-").
$^L $FORMAT_FORMFEED G Перевод формата при выводе (по умолчанию "\f").
$? $CHILD_ERROR G Код завершения последнего процесса-потомка.
$! $OS_ERROR, $ERRNO G Код последней системной ошибки.
$^E $EXTENDED_OS_ERROR G Информация об ошибке (зависит от ОС).
$@ $EVAL_ERROR G Сообщение об ошибке последней операции eval.
$$ $PROCESS_ID, $PID G Номер текущего процесса.
$< $REAL_USER_ID, $UID G Реальный UID текущего процесса.
$> $EFFECTIVE_USER_ID, $EUID G Эффективный UID текущего процесса.
$( $REAL_GROUP_ID, $GID G Реальный GID текущего процесса.
$) $EFFECTIVE_GROUP_ID, $EGID G Эффективный GID текущего процесса.
$0 $PROGRAM_NAME G Имя текущей программы.
$[ $ARRAY_BASE G Индекс первого элемента массивов (по умолчанию 0, устарел).
$] $OLD_PERL_VERSION G Версия PERLа в виде плавающего числа (устарела).
$^A $ACCUMULATOR G Аккумулятор для операций formline и write.
$^C $COMPILING G Текущее значение опции компилятора -c.
$^D $DEBUGGING G Текущее значение опции компилятора -d (флаги отладки).
$^F $SYSTEM_FD_MAX G Максимальный дескриптор системных файлов, обычно 2.
$^H   G Внутренняя переменная исполняющей системы.
%^H   G Внутренняя переменная исполняющей системы.
$^I $INPLACE_EDIT G Текущее значение опции компилятора -i.
$^M   G Отладочная переменная для посмертного дампа памяти.
$^O $OSNAME G Название операционной системы.
$^P $PERLDB G Внутренняя переменная для отладки.
$^R LAST_REGEXP_CODE_RESULT G Результат последнего успешного выражения (?{ code }).
$^S $EXCEPTIONS_BEING_CATCH G Текущее состояние интерпретатора.
$^T $BASETIME G Время запуска текущей программы.
$^V $PERL_VERSION G Версия PERLа в виде строки.
$^W $WARNING G Текущее значение опции компилятора -w.
$^X $EXECUTABLE_NAME G Название исполняемого модуля PERL.
  ${^WARNING_BITS} G Флаги генерации предупреждений, разрешенных use warnings.
  ${^WIDE_SYSTEM_CALLS} G Использовать системные API в кодировке Unicode.
$ARGV   C Имя текущего файла.
@ARGV   G Аргументы командной строки сценария.
@_   G Текущий список параметров подпрограммы.
@INC   G Список include-каталогов исполняющей системы.
%INC   G Ассоциативный массив модулей, включенных в программу.
%ENV   G Ассоциативный массив, содержащий текущее окружение системы.
%SIG   G Ассоциативный массив обработчиков сигналов.