地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Perl】lintツールperlcriticを使う

metacpan.org

perlでの静的解析ツールって何があるんだろうとか思って調べてたら出てきたので使ってみた。perl何も分からんを感じさせてくれるツールと感じました。

導入

cpanmで入ります。

$ cpanm Perl::Critic;

ちなみにめちゃめちゃ多機能です。pythonでよく見るような機能は網羅されていました。

Usage:
      perlcritic [-12345 | --brutal | --cruel | --harsh | --stern | --gentle]
                 [--severity number | name] [{-p | --profile} file | --noprofile]
                 [--top [ number ]] [--theme expression] [--include pattern]
                 [--exclude pattern] [{-s | --single-policy} pattern]
                 [--only | --noonly] [--profile-strictness {warn|fatal|quiet}]
                 [--force | --noforce] [--statistics] [--statistics-only]
                 [--count | -C] [--verbose {number | format}] [--allow-unsafe]
                 [--color | --nocolor] [--pager pager] [--quiet]
                 [--color-severity-highest color_specification]
                 [--color-severity-high color_specification]
                 [--color-severity-medium color_specification]
                 [--color-severity-low color_specification]
                 [--color-severity-lowest color_specification]
                 [--files-with-violations | -l]
                 [--files-without-violations | -L]
                 [--program-extensions file_name_extension]
                 {FILE | DIRECTORY | STDIN}

      perlcritic --profile-proto

      perlcritic { --list | --list-enabled | --list-themes | --doc pattern [...] }

      perlcritic { --help | --options | --man | --version }

どのルールがトリガされているのか、perlcriticの--verboseオプションを利用することで、どのようなルールが素早く参照できるのかをすぐに知ることができます:

レベルを8に設定すると、警告を発生させたルールが表示されます。レベルを上げていくとlint失敗させたルールがなぜあるのかといった理由まで表示してくれます。毎回ググらなくて済むのは便利ですね。