2007/11/14 追記:
Module-Starter-1.470 のバージョンアップによって、下記不具合は解消されました。
記事中の手順で問題なく module-starter が使えるようになっています。
以前、日経ソフトウエア2007.03(1月24日発売)に書いた特集記事が
Webプログラミング実力アップ Part1 正しいPerl/CGIの書き方:ITpro
──Webプログラミング初心者からの脱出の手引き
としてITpro上で公開されましたが、その間にCPANモジュールのModule-Starterのバージョンアップがあって、module-starterが動作しない例がありました。
■ 問題点
module-starter を実行すると Unknown placeholder in Makefile.PL というエラーが出る。
http://b.hatena.ne.jp/kits/20071023#bookmark-6249546
2007年10月23日
[perl][programming]module-starter --module=My::Yakudoshi したら Unknown placeholder in Makefile.PL と言われた。
cpanを使ってみる - いつの間にか27歳日記
sudo perl -MCPAN -e shell
get Module::Starter
force install Module::Starter
が、いざ使ってみるとやっぱり。
Unknown placeholder <MAIN PM FILE> in Makefile.PL
むむ~~。
たしかに、最新の Module-Starter-1.44(Ricardo SIGNES 版)だとうまくいかない模様。
同様の指摘を古川さんよりメールでいただきました。
■ 解決方法
古いバージョンの Module-Starter-1.42(Andy Lester 版)をインストールする。
$ cpan P/PE/PETDANCE/Module-Starter-1.42.tar.gz
このようにすると、記事中の module-starter --module=My::Yakudoshi がうまく実行できると思います。
■ pmsetupを使う(別の解決方法)
正直、Module::Starter::PBP は Damian Conway臭が強すぎるので、結局自分でモジュールのテンプレートを弄るのであれば、
宮川さん作のpmsetupを使う手もあります。
テンプレートが一つのファイルにまとまっているのでカスタマイズが容易で、svkとの連携も簡単です。
pmsetup のインストール手順
$ wget http://svn.yappo.jp/repos/public/misc/pmsetup
$ vi pmsetup
$ sudo install -m 0755 pmsetup /usr/local/bin
実行には Template, YAML, Module::Install, Test::Perl::Critic の CPANモジュールが必要です。事前にインストールしてください。
$ cpan Template
$ cpan YAML
$ cpan Module::Install
$ cpan Test::Perl::Critic (エラーが出る場合はforce installしてください)
pmsetup初回実行時には以下の項目を聞かれるので自分用の設定を入力します。
Your name: [] Yoshinori TAKESAKO
Your email: [] takesako{at}shibuya.pm.org
Your svk base scratch DEPOTPATH: [//scratch] [] //scratch
Your svk base mirror DEPOTPATH: [//mirror] [] //mirror
Your workdir: [/home/takesako/tmp] /home/takesako/tmp
pmsetup でモジュールを作る
$ pmsetup My::Yakudoshi
$ cd My-Yakudoshi
$ perl Makefile.PL
$ make test
$ make manifest (MANIFEST の作成)
$ make dist (tarball の作成)
これをカスタマイズして、自分用のpmsetupを作ってみるのもいいと思います。
- YappoLogs: 自分用のpmsetupを作った
以上、ご参考まで。