Perl的内置`Internals ::`包的文档在哪里?

时间:2010-06-04 19:45:40

标签: perl module internals

使用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的来源并发现它。

1 个答案:

答案 0 :(得分:5)

IIRC代码不是Internals.pm而是libinternals.c。看起来他们曾经在universal.c in Perl 5.8但已迁出。

根据03/2009和Perl 5.10,它们没有按this perlmonks thread记录。

此外,在同一个帖子中,ysth表示:

  

universal.c中的未记载的东西   不应该依赖;他们应该   仅供核心模块使用。他们   是不是故意记录,允许   随时随地改变它们   但是必要的。出于这些目的,   代码是足够好的文档。