perlcritic
例として、 ( ) はステートメント内のPerl::Critic
括弧の不一致を気にしていないように見えることに気付きました。しかし、多くif
のことを(より低い重大度の設定で)気にかけているようです。
私には、括弧の不一致などの単純な構文の問題があることさえわからない場合、役に立たないように思えます。これはどのように機能するように設計されていますか?
perlcritic
例として、 ( ) はステートメント内のPerl::Critic
括弧の不一致を気にしていないように見えることに気付きました。しかし、多くif
のことを(より低い重大度の設定で)気にかけているようです。
私には、括弧の不一致などの単純な構文の問題があることさえわからない場合、役に立たないように思えます。これはどのように機能するように設計されていますか?
はい、それが Perl::Critic の仕組みです。
そのように明示的に設計されているかどうかはわかりませんが、Perl コードのコンパイルは非常に簡単であり、考慮さえされていませんでした。また、ライブラリ パスなどを設定する必要がある場合、Perl コードをビルドする方法がわからないため、構成がさらに複雑になります。また、Perl コードをコンパイルすると Perl コードが実行される可能性があるため、セキュリティ上の問題になります。
ただし、コンパイルされないコードでは正しく動作しません。そのため、lint を実行する前にコードをコンパイルすることをお勧めします。
構文チェックには、 を使用できますperl -c <your program>
。より体系的なチェックを行うには、 Test::Compileを使用してテストを記述できます。に入れt/00compile.t
ます。その後、Test::Perl::Criticを使用して、コードが標準に違反していないことをテストできます。それを入れるとt/00critic.t
、コンパイルチェック後に実行されます。