Perl Технология программирования   Компьютерная графика Экономическая информатика   3GL   к 4GL

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

[Назад] [Содержание] [Вперед]

Perl Технология программирования   Компьютерная графика Экономическая информатика   3GL   к 4GL

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.

{DATA}
НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution