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

[] [] []


Содержание раздела