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

17

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

У меня

use strict;
use warnings;

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

    
задан Charles 26.07.2011 в 21:10
источник

4 ответа

9

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

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

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

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

    
ответ дан Michael Carman 26.07.2011 в 22:29
источник
20

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

    
ответ дан Stuart Watt 26.07.2011 в 21:14
источник
5

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

you@there:~/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
    
ответ дан Alois Mahdal 09.08.2012 в 10:07
источник
4

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

ответ дан Tim Bunce 25.11.2014 в 19:03
источник