Внутреннее устройство
СОДЕРЖАНИЕ
ИМЯ
Внутреннее устройство - Зарезервированное специальное пространство имён для внутренних функций
СИНОПСИС
$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