Perl でテスト可能なスクリプトを書く
元々ぺら一枚のスクリプトだったのだが、これを機に App::Hoge::CLI
(仮称) のようなモジュールを作ろうとした。
すると、pull-request の時に「使い回しのできないものをモジュールにしないほうがいい」というような指摘を受けた。
でもテストできないしどうするかな、とそれまで思っていたのだが、このとき次の方法を教えて頂いた。
main() if $0 eq __FILE__; sub main { : }
モジュールとして使いたいコードがあったら、スクリプトに package 宣言して同梱してしまえばいい。
他で使い回しできなさそうなコードは、スクリプトにまとめてしまったほうがいいケースもありそうですね!
ちょっとぐぐってみたところ、同じようなやり方をしている記事をいくつか見かけたので、リンクを貼っておきます。