2010-06-04 11 views
6

Podczas korzystania z keys %:: w celu pobrania listy aktualnie załadowanych obszarów nazw root, domyślnie jest ładowany pakiet Internals:: (wraz z UNIVERSAL:: i kilkoma innymi). Jednak nie znalazłem żadnej dokumentacji funkcji w Internals::Gdzie jest dokumentacja dla Perla wbudowana w pakiet `Internals ::`?

keys %{Internals::} zwrotów SvREFCNT hv_clear_placeholders hash_seed SvREADONLY HvREHASH rehash_seed

Wszystkie te można prawdopodobnie spojrzał w C docs API Perla, ale jest jakaś dokumentacja poziom Perl dla nich? Czy paczka jest stabilna? Jest używany przez kilka podstawowych modułów (na przykład Hash::Util), więc wyobrażam sobie, że tak jest, ale brak dokumentacji jest nieco kłopotliwy.

Nie widziałem Internals.pm w dystrybucji Perla (może inna nazwa?), A nie jest to modułna CPAN.

Uwaga: w pełni rozumiem, że funkcje w Internals:: są potencjalnie niebezpieczne i nie mam żadnego konkretnego zastosowania. Czytałem przez źródło Hash::Util i natknąłem się na niego.

Odpowiedz

5

Kod IIRC to nie Internals.pm, ale libinternals.c. Wygląda na to, że były kiedyś w wersji universal.c in Perl 5.8, ale zostały przeniesione.

Zgodnie z 03/2009 i Perl 5.10 nie zostały one udokumentowane zgodnie z this perlmonks thread.

Również w tym samym wątku, ysth stany:

Nielegalni rzeczy w universal.c nie powinna być uzależniona od; powinny one być używane tylko przez moduły podstawowe. One nie są celowo dokumentowane, aby można było je zmienić za każdym razem i , jednak konieczne. Dla tych celów kod jest wystarczająco dobrą dokumentacją.

+1

Komentarze w 'universal.c' są świetne:'/* To niebezpieczne rzeczy. */'...'/* Mam nadzieję, że naprawdę wiesz, co robisz. */' –

+0

" ... kod jest wystarczająco dobrą dokumentacją "- to nie przeszkadza ludziom w pisaniu kodu przeciwko aktualnej implementacji i widzeniu, że łamie się po wprowadzeniu zmian. – Ether

+0

Link podany wcześniej - http://perlbin.sourceforge.net/perlcompiler/perl.internals.pdf - wygląda interesująco, chociaż wydaje się dość przestarzały. – Ether

Powiązane problemy