當使用keys %::
來獲取當前加載的根名稱空間的列表時,默認情況下會加載Internals::
程序包(以及UNIVERSAL::
和其他一些程序包)。但是,我還沒有發現對功能中的任何文檔中Internals::
Perl的內置`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
的來源閱讀並發現它。
'universal.c'中的註釋很棒:'/ *這是危險的東西。 * /'......'/ *我希望你真的知道你在做什麼。 * /' – 2010-06-04 20:14:18
「...代碼是足夠好的文檔」 - 這不會阻止人們針對當前實現編寫代碼,並在發生更改時看到代碼被破壞。 – Ether 2010-06-04 20:16:49
您之前提供的鏈接 - http://perlbin.sourceforge.net/perlcompiler/perl.internals.pdf - 看起來很有趣,雖然看起來很過時。 – Ether 2010-06-04 20:19:11