Подтвердить что ты не робот

Lint-подобная программа для Perl?

Я ищу ворс для Perl, что бы уловить код и другие потенциальные проблемы. Любые предложения?

У меня

use strict;
use warnings;

но я хотел бы иметь больше.

4b9b3361

Ответ 1

Perl не имеет прямого эквивалента lint. Значительная часть причин этого заключается в том, что Perl не обеспечивает столько же способов повесить себя, как C. Базовая версия "lint" для Perl такова:

perl -Mstrict [-Mdiagnostics] -cw <file>

Это приводит к тому, что perl компилирует (но не запускает) указанный файл со строками и предупреждениями. Вы можете использовать диагностику, если вам нужны более подробные сообщения или оставьте это, если для вас достаточно кратких.

Если вы хотите что-то попробовать, используйте Perl:: Critic, но имейте в виду, что это тоже не пустяк. lint в первую очередь относится к ошибкам (например, к тем, что предотвращает компиляцию, вызывает ошибки времени выполнения, не переносится, полагается на поведение undefined и т.д.). Perl:: Critic больше ориентирована на внедрение стандартов кодирования. Хотя есть некоторое перекрытие, они очень разные вещи.

Ответ 2

Perl::Critic является вашим другом. Я использую Test::Perl::Critic и встраиваю его в мои тесты автора кода

Ответ 3

Используйте B::Lint. Вы можете использовать его в командной строке, вызвав O модуль с Lint как аргумент, например:

[email protected]:~/sandbox$ perl -MO=Lint Some.pm 
Implicit scalar context for array in logical and (&&) at Some.pm line 121
Implicit scalar context for array in conditional expression at Some.pm line 49
Implicit scalar context for array in logical and (&&) at Some.pm line 132
Some.pm syntax OK

Ответ 4

В дополнение к Perl:: Critic вы можете посмотреть на новый Perl::Lint.