Spec-Zone.ru › Perl 5.32

Внутренние данные

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • СИНОПСИС
  • ОПИСАНИЕ
    • ФУНКЦИИ
  • АВТОР
  • СМОТРИТЕ ТАКЖЕ

НАЗВАНИЕ

Внутренние данные — зарезервированное специальное пространство имён для внутренних функций

СИНОПСИС

$is_ro= Internals::SvREADONLY($x)
$refcnt= Internals::SvREFCNT($x)
hv_clear_placeholders(%hash);

ОПИСАНИЕ

Пространство имён Внутренние данные используется основной командой разработчиков Perl для экспонирования определенных внутренних рутин низкого уровня для тестирования и других целей.

По теории эти рутины не предназначались и не предназначены для использования вне ядра Perl, и они могут быть изменены или удалены в любое время.

На практике люди со временем стали полагаться на эти рутины, несмотря на историческую недокументированность, поэтому мы предоставим некоторый уровень совместимости в будущем. Тем не менее, вы можете предположить, что любая задокументированная здесь рутина является экспериментальной или устаревшей, и вы должны найти альтернативы её использованию.

ФУНКЦИИ

SvREFCNT(THING [, $value])

Исторически Perl был языком со счётом ссылок. Это означает, что каждая переменная отслеживает, сколько вещей ссылаются на неё, и когда на переменную больше нет ссылок, она автоматически освобождается. По теории код Perl не должен заботиться об этом, и в будущей версии Perl может быть использован другой подход, хотя на практике это маловероятно.

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

*ПРИМЕЧАНИЕ* Настоятельно не рекомендуется использовать эту функцию в коде, не предназначенном для тестирования, и особенно не рекомендуется использовать форму установки этой функции. Результаты такого использования могут привести к ошибкам сегментации или другому неопределённому поведению.

SvREADONLY(THING, [, $value])

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

Настоятельно не рекомендуется использовать эту функцию напрямую. Она используется различными модулями ядра, такими как Hash::Util, и директивой constant для реализации поведения более высокого уровня, которое следует использовать вместо этого.

См. реализацию ядра для точного значения флага только для чтения для каждого типа внутренней переменной.

hv_clear_placeholders(%hash)

Очистить любые заполнительные элементы из заблокированного хэша. Не следует использовать напрямую. Вы должны использовать функции-обёртки, предоставляемые Hash::Util. С версии 5.25 также доступно как Hash::Util::_clear_placeholders(%hash)

АВТОР

Команда разработчиков Perl.

СМОТРИТЕ ТАКЖЕ

perlguts Hash::Util constant universal.c

© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.30.3/Internals

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API