Где находится документация для встроенного в Perl пакета `Internals ::`? - PullRequest
6 голосов
/ 04 июня 2010

При использовании keys %:: для получения списка загруженных в настоящий момент корневых пространств имен по умолчанию загружается пакет Internals:: (наряду с UNIVERSAL:: и некоторыми другими). Однако я не нашел никакой документации по функциям в Internals::

keys %{Internals::} возвращает SvREFCNT hv_clear_placeholders hash_seed SvREADONLY HvREHASH rehash_seed

Все это, вероятно, можно найти в документации по Perl C API, но есть ли для них документация уровня Perl? Является ли пакет стабильным? Он используется несколькими основными модулями (Hash::Util для одного), так что я думаю, что это так, но отсутствие документации немного беспокоит.

Я не видел Internals.pm в дистрибутиве Perl (может быть, другое имя?), И это не модуль Internals в CPAN.

Примечание: я полностью понимаю, что функции в Internals:: потенциально опасны, и я не имею в виду какое-либо конкретное использование. Я читал источник Hash::Util и наткнулся на него.

1 Ответ

5 голосов
/ 04 июня 2010

IIRC код не Internals.pm, а libinternals.c . Похоже, они были в universal.c в Perl 5.8 , но были перенесены.

Согласно 03/2009 и Perl 5.10 они не были документированы согласно этой ветке perlmonks .

Кроме того, в том же потоке ysth сообщает:

Недокументированные вещи в universal.c не должно зависеть от; им следует использоваться только основными модулями. Oни не документированы специально, чтобы их нужно менять всякий раз, когда и однако необходимо. Для этих целей код достаточно хорошая документация.

...