使用keys %::
获取当前已加载的根名称空间的列表时,默认情况下会加载Internals::
软件包(以及UNIVERSAL::
和其他一些软件包)。但是,我没有在Internals::
中找到有关该功能的任何文档。keys %{Internals::}
返回SvREFCNT hv_clear_placeholders hash_seed SvREADONLY HvREHASH rehash_seed
所有这些都可以在Perl的C API文档中找到,但是是否有针对他们的Perl级别的文档?包装稳定吗?它由多个核心模块(其中一个为Hash::Util
)使用,所以我想是的,但是缺少文档有点麻烦。
我在Perl发行版中没有看到Internals.pm
(也许是其他名称?),它不是CPAN上的Internals
模块。
注意:我完全理解Internals::
中的功能具有潜在的危险,并且我没有任何特别的用途。我正在阅读Hash::Util
的资料并偶然发现。
最佳答案
IIRC的代码不是Internals.pm,而是libinternals.c。看起来他们曾经在universal.c in Perl 5.8中,但被迁移了出去。
根据03/2009和Perl 5.10,未按照this perlmonks thread进行记录。
同样,在同一线程中,ysth指出:
Universal.c中未记录的东西
不应该依赖;他们应该
仅由核心模块使用。他们
没有故意记录下来,以允许
他们随时随地都要改变
但是有必要。为此目的,
该代码是足够好的文档。