ある程度のコード量を持つPerlのスクリプトは、スクリプト本体と多数の自作モジュール、そのテストコードから構成されると思います。
しかし、このモジュールやテストコード用のディレクトリを作ったり、インストール用のスクリプトをイチから手作業で用意するのは面倒です。Andy Lesterさんが作った Module::Starter というモジュールを使うと面倒くさい手順無しに簡単にこれらのディレクトリやファイルのひな形を用意してくれます。
Module::Starterをインストール
- CPANからインストールする場合
- macportsからインストールする場合
Module::Starter の設定ファイルを準備
module-starterの実行
Module::Starter は標準モジュールではないので CPAN や、 MacPorts からインストールします。
$ sudo cpan Module::Starter
$ sudo port install p5-module-starter
DebianやFedora等のLinuxディストリビューションの場合は、それぞれ専用のパッケージが用意されているので、パッケージを検索して下さい。
Module::Starter には、モジュールのひな形を作る module-starter というコマンドが有ります。以下の様に使います。
$ module-starter --module=Foo::Bar,Foo::Bat \
> --author="ash" --email=info@roova.jp
しかし、モジュール名は毎回変わると思いますが、作者を示す author や、 email アドレスを示す email は毎回同じ内容を指定するのは面倒です。そのため、事前に設定ファイルを作っておくと指定を省略する事が出来ます。
「~/.module-starter/config」というテキストファイルを作って、その中にパラメータを書き込んでおきます。
例えばこんな内容です。
author: ash
email: info@roova.jp
builder: Module::Build
ignores_type: git
最初の author と email はそれぞれモジュールの作者と、 email アドレスを指定します。
次の builder はモジュールをインストールする仕組みを指定します。この例では Module::Build を使っています。 ExtUtils::MakeMaker や Module::Install を指定する事もできます。 Windows 環境でも使う事を考えると、 nmake コマンドが不要な Module::Build がお勧めです。
最後の ignores はバージョンコントロールソフトで管理対象外にするファイルの形式を指定です。この例は git で使う.gitignoreファイルが作成されます。意外とこのファイルを勝手に作ってくれるのが一番便利なのかもしれません。
設定ファイルの準備が出来たら、 module-starter コマンドを実行します。
$ module-starter --dir=FooApp --module=Foo::Bar
この例では、FooAppというディレクトリを作成し、その中にlib/Foo/Bar.pmというモジュールのひな形が用意されます。t/ディレクトリ配下にはテストコードのひな形が用意されています。
実際のファイル構成は以下の様になります。これでひな形が完成しましたので、後は実際にコードを書いていくだけです。
$ tree -a FooApp/
FooApp/
|-- .gitignore
|-- Build.PL
|-- Changes
|-- MANIFEST
|-- README
|-- lib
| `-- Foo
| `-- Bar.pm
`-- t
|-- 00-load.t
|-- boilerplate.t
|-- manifest.t
|-- pod-coverage.t
`-- pod.t
3 directories, 11 files
Module::StarterはPlugin機能をサポートしていて、様々な拡張用プラグインがリリースされています。CPANで検索してみて下さい。

コメントする