Справочник по Perl : Специальные переменные

Материал из Справочник Web-языков.

Перейти к: навигация, поиск
Главная  ::. Perl  ::. Специальные переменные

Содержание

[править] $_

Используется по умолчанию во многих функциях и операциях, в том числе :

  • в качестве области поиска в операциях сопоставления с образцом m//, замены s/// и транслитерации y///, когда область поиска не задана явно операцией связывания =`;
  • в качестве области ввода, когда условное выражение оператора while состоит из единственной операции ввода <>;
  • в качестве параметра функции chop, split, print;
  • в качестве переменной цикла в операторе foreach, если переменная цикла не задана явно.

[править] $nn

Переменные $1, $2,... содержат подобразы из соответствующих наборов круглых скобок в последней успешной операции сопоставления с образцом.

[править] $&

Часть строки, найденная при последней успешной операции сопоставления с образцом.

[править] s`

Часть строки, стоящая перед совпавшей частью при последней успешной операции сопоставления с образцом.

[править] $'

Часть строки, стоящая после совпавшей части при последней успешной операции сопоставления с образцом.

[править] $+

Содержит подобразец из последнего набора круглых скобок в последней успешной операции сопоставления с образцом. Например, в результате операции

"1234.5678"=~m/(\d+)\.(\d+)/;

переменная $+ получит значение 5678.

[править] $*

Устанавливает значение 0, чтобы в операциях сопоставления с образцом строка рассматривалась как мультистрока, состоящая из нескольких строк, розделенных символом новой.

Установить значение 1, чтобы в операциях сопоставления с образцом строка рассматривалась как одна строка. В этом случае метасимволу "." соответствует любой одиночный символ, в том числе и новой строки.

Устарела, для указанных целей рекомендуется в операциях сопоставления с образцом использовать ключ m и s, соответственно.

Значение по умолчанию равно 0.

[править] $.

Номер последней строки, считанной из того файла, для которого выполнялась последняя операция чтения.

[править] $/

Разделитель записей, считываемых из взодного файла. По умолчанию равен символу новой строки. Может состоять из нескольких символов. Если значение установлено неопределенным при помощи функции undef, то при чтении из входного файла границей записи является признак конца файла.

[править] $|

Обычно данные, выводимые в файл функциями print или write, предварительно помещаются в буфер. Когда буфер заполняется, его содержимое записывается в файл. Буферизация повышает эффиктивность операций вывода. По умолчанию Perl использует буферизацию для каждого выходного файла, что ссответствует нулевому значению переменной $|. Чтобы ее отменить, следует выбрать файл при помощи функции select и установить значение переменной $| не равным 0.

[править] $,

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

[править] $\

Разделитель выходных записей для функции print. Добавляется в конец списка параметров функции print. По умолчанию равен нулевому символу. Если установить его значение равным символу новой строки, каждый вызов функции print будет завершаться переводом на новую строку.

[править] $"

Когда переменная-массив, заключенная в двойные кавычки, передается в качестве параметра функции print, ее элементы при выводе разделяются последовательностью символов, содержащейся в переменной $". По умолчанию ее значением является символ пробела.

[править] $;

Символ, используемый в качестве разделителя индексов при эмуляции многомерных массивов. Значение по умолчанию \034. Интерпретатор, встретив запись $array{"bim","bom"}, преобразует ее к виду $array{"bim" . $; . "bom"}.

[править] $#

Формат, используемый по умолчанию для вывода чисел. Значение по умолчанию %20g, что означает представление выводимых чисел в формате с 20 знаками после десятичной точки. Не рекомендуется использовать в версиях Perl 5 и старше.

[править] $%

Каждый файл, открываемый программой Perl для ввода, имеет свою копию переменной $%, в которой храниться номер текущей страницы. В каждый момент значение переменной $% равно номеру текущей страницы текущего файла вывода.

[править] $=

Длина текущей страницы текущего файла вывода. По умолчанию значение равно 60.

[править] $-

Число строк, оставшихся на текущей странице текущего файла вывода.

[править] $~

Имя текущего формата для текущего файла вывода. Значением по умолчанию является имя дескриптора этого файла.

[править] $^

Имя текущего формата заголовка страницы для текущего файла вывода. Значением по умолчанию является имя дескриптора файла, к которому добавлен суффикс _TOP.

[править] $:

Текущее множество символов переноса слова. Если поле вывода в формате начинается с символа ^, то интерпретатор помещает в это поле вводимое слово только тогда, когда в нем достаточно места для этого слова. Чтобы определить, может ли слово поместится в поле формата, интерпретатор подсчитывает число символов между следующими выводимым символом и следующим символом переноса слова. Символ переноса слова обозначает или конец слова, или место, где слово может быть разбито на две части. По умолчанию значением переменно $: является строка, состоящая из символов пробела, новой строки и дефиса:" \n-".

[править] $^L

Признак перехода на новую страницу, используемый в шаблонах формата. Значение по умолчанию \f.

[править] $^A

Аккумулятор, используется функцией write() для временного хранения выводимых отформатированных строк.

[править] $?

Информация, возвращаемая последней операцией ``, операцией закрытия програмного канала или вызовом функции system. Представляет 16-битное целое число, состоящее из двух частей по 8 бит. Старшие 8 разрядов содержат код завершения процесса, младшие - дополнительную системную информацию о завершении процесса.

[править] $!

Некоторые функции Perl обращаются к функциям операционной системы. Если системная функция генерирует ошибку, код ошибки сохраняется в переменной $!. В числовом контексте переменная $! дает код системной ошибки, в строковом контексте - соответствующее текстовое сообщение.

[править] $^E

Информация о системной ошибке, специфическая для текущей операционной системы. Отличается от переменной $! для платформ Win32, OS/2 и VMS, для остальных платформ эти переменные совпадают.

[править] $@

Сообщение об ошибке, сгенерированное интерпретатором в результате последнего вызова функции eval(). Нулевое значение означает, что функция eval() завершилась успешно.

[править] $$

Идентификатор процесса выполняющегося интерпретатора perl.

[править] $<

Действительный идентификатор пользователя данного процесса.

[править] $>

Эффективный идентификатор пользователя данного процесса.

[править] $(

Действительный идентификатор группы данного процесса.

[править] $)

Эффективный идентификатор группы данного процесса.

[править] $0

Имя файла, содержащего выполняющуюся Perl-программу.

[править] $[

Индекс первого элемента массива и первого символа в подстроке. Значение по умолчанию 0. Не рекомендуется изменять.

[править] $]

Номер версии интерпретатора perl.

[править] $^D

Текущее значение флагов отладки, которые передаются при вызове интерпретатора с ключом -D.

[править] $^F

Максимальный номер дескриптора системного файла. Обычно системными файлами считаются стандартные файлы SYDIN, STDOUT, STDERR, которые в OC UNIX имеют дескрипторы 0, 1, 2 соответственно. Поэтому значением по умолчанию является 2.

[править] $^H

Значение, содержащее информацию о том, какие проверки синтаксиса заданы дерективой use strict.

[править] $^I

При вызове интерпретатора Perl с флагом -iextension входные файлы, полученные при помощи операции <>, можно редактировать непосредственно на месте. При этом для резервной копии файла используется имя с расширением extension. Это расширение и сохраняется в переменной $^I. Если ее значение сделать неопределенным при помощи функции undef, редактирование на месте будет запрещено.

[править] $^M

Эта переменная используется только в специально скомпилированной версии интерпретатора Perl для создания резервного буфера памяти.

[править] $^O

Имя операционной системы, в которой была осуществлена компиляция данного интерпретатора Perl.

[править] $^P

Содержит внутренние флаги отладчика Perl. Если значение равно 0, режим отладки отключен.

[править] $^R

Результат последнего удачного выполнения конструкции (?{code}), представляющий расширенный синтаксис регулярного выражения.

[править] $^T

Время, когда была запущенна программа. Измеряется в секундах относительно 1970 года.

[править] $^W

Значение ключа командной строки -w. Значение 0 подавляет вывод предупреждающих сообщений о возможных синтаксических и других ошибках, значение 1 - разрешает.

[править] $^X

Имя, по которому была вызвана выполняющаяся программа.

[править] $ARGV

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

[править] @ARGV

Содержит аргументы командной строки выполняющейся программы.

[править] @INC

Содержит имена каталогов, в которых следует искать сценарии Perl, подлежащие выполнению в конструкциях do filename, require или use. Первоначально содержит: имена каталогов, переданные при запуске интерпретатору perl в качестве ключа -I; имена библиотечных каталогов по умолчанию (зависят от операционной системы); символическое обозначение текущего каталога ".".

[править] @_

Внутри подпрограммы содержится список переданных ей параметров.

[править] %INC

Содержит по одному элементу для каждого файла, подключенного при помощи функции do или require. Ключем является имя файла в том виде, как оно указано в качестве аргумента функции do или require, а значением - его полное маршрутное имя.

[править] %ENV

Содержит текущие значения переменных среды.

[править] %SIG

Служит для настройки обработки сигналов. Ключем является мнемоническое имя сигнала, значением - либо строка "IGNORE" (игнорировать сигнал), либо строка "DEFAULT" (восстановить реакцию на сигнал по умолчанию), либо строка, задающая квалифицированное имя подпрограммы-обработчика сигнала.

[править] @EXPORT

Содержит имена, которые пакет экспортирует по умолчанию.

[править] @EXPORT_OK

Содержит имена, которые пакет экспортирует по запросу вызывающей программы.

[править] ARGV

Дескриптор, ассоциированный с текущим файлом ввода, из которого осуществляется считывание при помощи операции <>. Последовательно ассоциируется с файлами, переданными в программу в качестве аргументов командной строки, имена которых сохраняются в массиве @ARGV.

[править] DATA

Специальный дескриптор файла, ассоциированный с частью файла, которая расположена после лексемы _END_. Чтение из дескриптора DATA означает считывание строки, расположенной в файле сразу за лексемой _END_, что позволяет поместить программу и данные в один файл.:

#!/usr/local/bin/perl
$line = <DATA>;
print ("$line");
_END_

Эта строка расположена в одном файле с Perl-программой.

[править] STDERR

Дескриптор стандартного файла диагностики, который обычно связан с экраном.

[править] STDIN

Дескриптор стандартного файла ввода, обычно ассоциированный с клавиатурой.

[править] STDOUT

Дескриптор стандартного файла вывода, обычно ассоциированный с экраном.

Личные инструменты
2.05414795876