Это действительно взломать, чтобы скрыть пакет от индексатора ПАУЗА.
Когда дистрибутив загружается в ПАУЗА, индексщик будет проверять каждый файл в загружаемом файле, ища имена пакетов, которые включены в дистрибутив. Любые индексированные пакеты могут отображаться в результатах поиска CPAN.
Существует множество причин, по которым не требуется, чтобы индексир обнаруживал ваши пакеты. В вашем дистрибутиве может быть много небольших или незначительных пакетов, которые будут загромождать результаты поиска для вашего модуля. У вас могут быть пакеты, определенные в вашем каталоге t
(test) или в другом нестандартном каталоге, которые не предназначены для установки как часть дистрибутива. В вашем дистрибутиве могут быть файлы из совершенно другого дистрибутива (что кто-то еще написал).
Хакер работает, потому что индексист строго ищет ключевое слово package
и выражение, которое выглядит как имя пакета в той же строке.
В настоящее время вы можете добавить файл META.yml
с вашим дистрибутивом. Индексатор PAUSE будет искать и уважать спецификацию no_index
в этом файле. Но это относительно новая возможность индексатора, поэтому более старые модули и вкладчики CPAN из старого таймера будут по-прежнему использовать взломанный разрыв строки.
Вот пример спецификации no_index
от Forks::Super
no_index:
directory:
- t
- inc
package:
- Sys::CpuAffinity
- Signals::XSIG
- Signals::XSIG::Default
- Signals::XSIG::TieArray56
Sys::CpuAffinity
и Signals::XSIG
отдельные распределения, которые также упакованы с Forks::Super
. Некоторые тестовые сценарии содержат объявления package
(например, Arbitrary::Test::Package
), которые не следует индексировать.
Наверное, какой-то странный хак, чтобы скрыть упрямый пакет с [Загружающего сервера авторов Perl] (http://pause.perl.org/pause/query?ACTION = pause_04about), чтобы избежать какой-либо обработки PAUSE, которая, вероятно, не будет иметь для вас значения, если вы не собираетесь загружать какой-то взломанный пакет в CPAN, что, вероятно, хорошее время, чтобы узнать, почему люди это делают. Другими словами, я понятия не имею. :) – Lumi
Просто посмотрел на страницу со своей ссылки, и я полагаю, что ваша точка очень близка к истине :). Кажется, это какая-то скрытая от автоматической обработки. Вероятно, человек, ответственный за Perl, должен рассказать нам всю историю, почему и когда он используется/не используется. – ArtM
Сам комментарий не имеет никакого эффекта; Это разрыв строки. – ikegami