6

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(可能有不同的名称?),它不是InternalsCPAN 上的模块。

注意:我完全理解其中的功能Internals::有潜在的危险,我没有任何特别的用途。我正在阅读Hash::Util's source 并遇到了它。

4

1 回答 1

5

IIRC 代码不是 Internals.pm 而是libinternals.c。看起来它们曾经在 Perl 5.8 的 Universal.c 中,但被迁移出来了。

根据 03/2009 和 Perl 5.10,它们没有按照这个 perlmonks 线程进行记录。

此外,在同一个线程中,ysth状态:

不应该依赖universal.c中未记录的东西;它们只能由核心模块使用。它们不是故意记录下来的,以便在必要时随时更改它们。出于这些目的,代码是足够好的文档。

于 2010-06-04T19:54:17.797 回答