6

keys %::現在ロードされているルート名前空間のリストを取得するためにを使用する場合、Internals::パッケージはデフォルトでロードされます (UNIVERSAL::および他のいくつかの名前空間とともに)。ただし、関数のドキュメントは見つかりませんでしたInternals::

keys %{Internals::}戻り値SvREFCNT hv_clear_placeholders hash_seed SvREADONLY HvREHASH rehash_seed

これらはすべておそらく Perl の C API ドキュメントで調べることができますが、Perl レベルのドキュメントはありますか? パッケージは安定していますか?いくつかのコア モジュール ( Hash::Util1 つ) で使用されているので、使用されていると思いますが、ドキュメントの欠如は少し厄介です。

Internals.pmPerl ディストリビューションには見当たりませんでした(名前が違うのかな?)、 InternalsCPAN のモジュールではありません。

注: の関数Internals::が潜在的に危険であることは十分に理解しており、特に使用するつもりはありません。Hash::Utilのソースを読んでいて、それを見つけました。

4

1 に答える 1

5

IIRC コードは Internals.pm ではなくlibinternals.cです。Perl 5.8 では、universal.c にあったようですが、移行されました。

2009 年 3 月および Perl 5.10 では、この perlmonks スレッドのように文書化されていませんでした。

また、同じスレッドで、ysthは次のように述べています。

Universal.c の文書化されていないものは依存すべきではありません。それらはコアモジュールでのみ使用する必要があります。それらは、必要に応じていつでも変更できるように、意図的に文書化されていません。それらの目的のために、コードは十分なドキュメントです。

于 2010-06-04T19:54:17.797 に答える