Встроенные переменные Пел.

Описанные в данной главе переменныые имеют в Пел специальные значения.
Они обозначаются несколько непривычно для "глаза" программистов
т.к. состоят обычно только из дву символов причем первый это '$'
символо с которого начинаются имена всех переменных и произвольный часто
не буквенно-цифровой символ. Если вы хотите пользоваться их "нормальными"
буквенными синонимами то вам нужно указать в начале программы:

	use English;

Точно так  же  если вы захотите пользоваться переменными и методами
текущего указателя файлов вы можете написать:

	use FileHandle;

после этого можно можно просто писать:

	метод указатель выражение

или

	указатель -> метод(выражение)


Ниже приводятся имена как в короткой так и в длинной (словесной) форме.
Некоторые из встроенных переменных имеют доступ тоько на чтение
поэтому изменить их значение просто не возможно.

$_
$ARG
	Переменная - по умолчанию для операторов ввода и поиска.
То есть если в качестве аргумента не указана никакая переменная то
используется именно эта.

$цифра
	Содержит найденные подстроку в последнем поиске когда
шаблон содержит метасимволы в круглых скобках. Цифра в данном
случае это номер скобок. Первая подстрока имеет номер 1.

$&
$MATCH
	Найденная подстрока в последнем поиске по шаблону.

$`
	Подстрока предшевствующая найденной подстроке.

$'
$POSTMATCH
	Подстрока последующая за найденной подстрокой.

$+
$LAST_PAREN_MATCH
	Подстрока найденная в поиске с выбором по "или".

$*
$MULTILINE_MATCHING
	Если значение этой переменной установить равным 1 то
переменная в которой осуществляется поиск будет считаться многосторочной
т.е. содержащей символы '\n' - перевод строки. Если значеие равно 0
то переменная считается однострочной. В Пел версии 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 -v
Применяется в программе для определения рабочей версии Пел.
В числовом контексте это номер версии плюс номер модификации / 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
	Команда запуска Пел. Аналогично argv[0] в С.

$ARGV
	Имя текущего файла читаемого оператором '<>'.

@ARGV
	Массив параметров строки запуска программы.
Внимание! @#ARGV - меньше количества параметров на 1 т.к.
$ARGV[0] это первый параметр (не имя программы).

@INC
	Список директорий диска которые просматривает Пел
для выполнения команд do, require или use.

%INC
	Этот хеш содержит имена директорий для имен использованных
файлов командами do или require. Ключ - имя файла, а значение - директория.

$ENV{выражение}
	Хеш %ENV содержит значения переменных окружения. Изменение
этих значений вызывает изменение окружения для процессов потомков.

$SIG{выражение}
	Хеш %SIG содержит имена подпрограмм для системных
сигналов таких как INT, QUIT, PIPE, ...
Значение 'DEFAULT' - для системной обработки.
'IGNORE' - игнорировать данный сигнал.