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