当使用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的资源时偶然发现了它。
发布于 2010-06-05 03:54:18
IIRC代码不是Internals.pm而是libinternals.c。看起来它们曾经在universal.c in Perl 5.8中,但后来被迁移出去了。
根据03/2009和Perl5.10,它们没有按照this perlmonks thread进行记录。
此外,在同一线程中,ysth声明:
C中未文档化的东西不应该依赖于
;它们应该只由核心模块使用。它们不是故意记录的,以允许在必要时随时更改它们。对于这些目的,代码已经足够好的文档了。
https://stackoverflow.com/questions/2977274
复制相似问题