読者です 読者をやめる 読者になる 読者になる

その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

cpanfileのシンタックスチェック

perl

cpanfileのシンタックスが壊れていた影響で悲劇が起きていていたので,
そういうのは機械にチェックさせましょうや,という事で書いたのが以下です.

Syntax test for cpanfile.

仕組みは至って簡単で,Module::CPANfile->load()にcpanfileのパスを食わせてやると,
シンタックスが不正な時に例外上げてくれてくれるので,そこに引っかけてやれば良いという感じですね.
(Module::CPANfile->load()は賢いので,シンタックスが不正な行数も教えてくれます)

gist7314162

例えばこのようなな不正なcpanfileがあったとして *1,上記のテストを走らせると,

gist7314256

という具合にテストがずっこけてくれる訳ですね.しかも2行目って書いてるからわかりやすい!

Minillaとかですと,build時にここら辺のチェックもやってくれるので,
モジュール作る時はそうしたオーサリングツール使うのが良いと思います.

モジュールじゃない時には,こうしたテストで引っかけてやると良いのでは無いでしょうか,と思った次第です.

追記

vimをお使いの方はsyntasticと拙作のsyntastic-cpanfileを組み合わせると,
ファイル保存時に自動的にシンタックスチェックかけてくれるので便利です.
(ぶっちゃけ,↑のソースコードはそのsyntastic-cpanfileからほぼほぼそのまま引っ張ってきた)
ぜひご活用ください.

*1:2行目のAcme::Anythingがbareword