Spec-Zone.ru › Perl 5.38

Внутреннее устройство

СОДЕРЖАНИЕ

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

ИМЯ

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

СИНОПСИС

$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–2023 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.38.0/Internals

Spec-Zone.ru

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