Perl :: Critic иногда будет больше интересоваться точным воспроизведением PBP, чем представлением хорошей политики, а некоторые из Perl Best Practices плохо выдерживают.Например, теперь крайне устаревшая Miscellanea :: RequireRcsKeywords по-прежнему включена по умолчанию.
Политики Perl :: Critic не должны рассматриваться как канонические.Им не хватает возможности сделать субъективный анализ, чтобы решить, действительно ли «исправление» приведет к увеличению сложности, особенно когда уровень серьезности падает, а выгоды становятся все более и более узкими. BuiltinFunctions :: ProhibitReverseSortBlock является политикой «косметического» уровня и прямо попадает в эту категорию.
Хотя кто-то может пропустить $b cmp $a
и прочитать его задом наперед, понять его сразу не сложноПосмотрим, не стоит ли перепутывать весь массив впоследствии, и, конечно, не стоит искажать ваш блок сортировки, чтобы соответствовать ограничениям анализа политики.Их решение не изменять поведение по умолчанию, чтобы ограничить политику простыми блоками сортировки, является неверным IMO.Ваш блок сортировки явно выходит за рамки написанной политики и срабатывает только потому, что реализация политики Perl :: Critic ограничена.
То, что в Perl :: Critic включена политика по умолчанию, не означает, что они представляютхорошая практика или что они должны следовать слепо.Не стесняйтесь настраивать его в соответствии со вкусами вашего проекта, для этого требуется Perl :: Critic на самых требовательных уровнях.Чтобы не допустить, чтобы заставить замолчать perlcritic стало привычным, я бы порекомендовал отдавать предпочтение политическим решениям в рамках проекта .perlcritic
, а не индивидуально отключать их построчно.
Помните, что смысл не в том, чтобы быть счастливым perlcritic, дело в том, чтобы написать лучший код.