To rzeczywiście hack do ukrycia pakietu z indeksu PAUSE.
Po przesłaniu dystrybucji do PAUSE indeksator sprawdza każdy plik w przesyłanym pliku, szukając nazw pakietów zawartych w dystrybucji. Wszelkie indeksowane pakiety mogą pojawiać się w wynikach wyszukiwania CPAN.
Istnieje wiele powodów, dla których indeksowanie nie powinno być wykrywane. Twoja dystrybucja może zawierać wiele małych lub nieistotnych pakietów, które mogłyby zaśmiecić wyniki wyszukiwania twojego modułu. Możesz mieć pakiety zdefiniowane w twoim katalogu t
(test) lub innym niestandardowym katalogu, który nie jest instalowany jako część dystrybucji. Twoja dystrybucja może zawierać pliki z zupełnie innej dystrybucji (napisanej przez kogoś innego).
Hack działa, ponieważ indeksator ściśle szuka słowa kluczowego package
i wyrażenie, które wygląda jak nazwa pakietu w tym samym wierszu.
Obecnie możesz dołączyć do swojej dystrybucji plik META.yml
. Indeksator PAUSE będzie szukać i respektować specyfikację no_index
w tym pliku. Ale jest to względnie nowa funkcja indeksera, więc starsze moduły i współtwórcy starszego modułu CPAN będą nadal używać hackowania linii.
Oto przykład no_index
specyfikacji z Forks::Super
no_index:
directory:
- t
- inc
package:
- Sys::CpuAffinity
- Signals::XSIG
- Signals::XSIG::Default
- Signals::XSIG::TieArray56
Sys::CpuAffinity
i Signals::XSIG
są oddzielne dystrybucji, które są również dostarczone z Forks::Super
. Niektóre skrypty testowe zawierają deklaracje package
(np. Arbitrary::Test::Package
), które nie powinny być indeksowane.
Prawdopodobnie jakiś whacky hack, aby ukryć shacky pack z [Serwer Perl autorów Upload] (http://pause.perl.org/pause/query?ACTION = pause_04o), aby uniknąć niektórych przerwań PAUSE, które prawdopodobnie nie będą dla ciebie ważne, chyba że masz zamiar przesłać jakiś hacky pack do CPAN, co jest prawdopodobnie dobrą porą, aby dowiedzieć się, dlaczego ludzie to robią. Innymi słowy, nie mam pojęcia. :) – Lumi
Wystarczy spojrzeć na stronę z linku i przypuszczam, że twój punkt jest bardzo bliski prawdy :). Wygląda na to, że ukrywa się przed automatycznym przetwarzaniem. Prawdopodobnie autor Perl powinien opowiedzieć nam całą historię dlaczego i kiedy jest używany/nie jest używany. – ArtM
Sam komentarz nie ma żadnego efektu; Jest to podział linii. – ikegami