nDiki : Perl モジュールの作り方
Perl モジュールの作り方
Perl モジュールを作成し配布パッケージ化する方法。
1. モジュール名を決める
まず最初に モジュール名を決める。
- パッケージ名の命名規則などについては、Perl style guide (perlstyle) などを参考にする。
- 既に CPAN に同名のものがないか検索してみる。
2. モジュールインストーラ方式を選ぶ
シンプルなモジュールであれば、ExtUtils::MakeMaker ベースで作成するのが良い。
依存する CPAN モジュールが多い場合は Module::Install の利用も検討してみる。
| 方式 | 特徴 |
| ExtUtils::MakeMaker 方式 | 標準 Perl ライブラリなので、いつでも利用できる。 |
| Module::Build 方式 | ExtUtils::MakeMaker の代替。make ユーティリティが不要。ただし、Perl v5.8.8 時点で、CORE に含まれていない。 |
| Module::Install 方式 | ExtUtils::MakeMaker あるいは Module::Build 上で動くモジュールインストーラ。簡便な記述や、インストール時の自動依存モジュールインストール機能などを提供する。必要なファイルは配布パッケージの inc ディレクトリにコピーされ同梱されるので、インストールする側はインストーラのために他のモジュールをインストールしておかなくてよい。 |
3. スケルトンを作成する
ディレクトリ構成を含めたスケルトンの作成は h2xs がメジャーどころ。 その他に
- ExtUtils::ModuleMaker
- ExtUtils::ModuleMaker::TT
- module-starter (Module::Starter) などがある。
h2xs を使ったスケルトン作成の例:
h2xs -AX --skip-exporter -n Foo::Bar
4. ビルドファイルを書く
スケルトンに含まれる、Makefile.PL を必要に応じて編集する。 Module::Build ベースであれば、Build.PL を編集する。
Pure Perl なモジュールならば、最初はそれほどいじらなくても大丈夫なはず。
5. コードを書く / テストを書く
がんばる。
Perl モジュールファイルは基本的には 「パッケージ名.pm」というファイル名で。(パッケージ名のつけかた → Perl style guide)
テストファースト開発がお勧め (→ Perl テストスクリプトの書き方)。
6. コードを綺麗にする
perltidy を通す。
7. MANIFEST ファイルを作成する
perl Makefile.PL make make manifest
Windows 環境であれば、事前に MANIFEST ファイルを削除しないと更新されないので注意。
作成された MANIFEST ファイルの中身を確認し、パッケージに含めたいファイルに過不足がないか確認する。
余分に入ってしまいがちなファイルには以下のようなものがある。
上記のファイルはビルドの過程で生成されるので、ソースパッケージには含めておく必要はない。
余分なファイルが含まれるようであれば、MANIFEST.SKIP に除外ルールを書く。
MANIFEST.SKIP ファイルには、パッケージに含めたくないファイル名にマッチする正規表現を1行に1つづつ記述する (perldoc ExtUtils::Manifest 参照)。
MANIFEST.SKIP の例
~$ ~blib/
8. Makefile.PL の PREREQ_PM 属性 を確認する
Perl モジュールの中で依存している他の Perl モジュールがあれば、そのモジュールを Makefile.PL の PREREQ_PM 属性に追加する。
Module::Install を採用しているならば requires 等で指定する。
次のリリース時
他の人の変更がないか確認
cvs update または svn update
テスト
perl Makefile.PL make distclean perl Makefile.PL make make test
バージョン番号を更新
Makefile.PL か $モジュール::VERSION で定義しているバージョン番号を更新。 README 等に書いてあればそれも更新。
MANIFEST を更新
Windows 上の場合は一旦 MANIFEST ファイルを削除する。UNIX 系ならそのなまの状態から。
make manifest
余分なファイルが MANIFEST に追加されていないか確認。 追加されていれば MANIFEST.SKIP を編集して make manifest しなおす。 OK ならば MANIFEST.SKIP をリポジトリへコミット。
ドキュメントを更新。
Changes を更新してリポジトリへコミット。
あるいは ChangeLog、NEWS を更新してリポジトリへコミット。
全てのファイルがコミットされていることを確認
cvs update または svn status
tarball の作成
make distclean perl Makefile.PL make make disttest make dist
tarball のテスト
cp パッケジー名-x.yz.tar.gz /tmp cd /tmp tar zxvf パッケジー名-x.yz.tar.gz cd パッケジー名-x.yz perl Makefile.PL make make test
必要なら Windows など別のマシンでも。
バージョン管理システムのリポジトリのタグ打ち
それぞれのルールに従ってタグ打ち。 適切なログメッセージをつけるようにする。
スポンサード リンク
Related term
Perl でデータベース処理 Perl でキャッシュ処理 Perl モジュールリスト CGI.pm Test::Harness nDiki GUI Perl で XML Test::Class Test::Unit Pod PAR Naney Perl Coding Standards Test::Builder File::Spec Perl バージョン wxPerl CGI C++ Test::More Perl v5.8.0 DiKicker Wx::ActiveX Search::InvertedIndex Naney 例外処理 Template Toolkit HTML メモ Devel::Size
■よく検索されるキーワード
提案書(75) torrent(69) perl(61) 書き方(45) 充電式カイロ(43) windows(38) x31(36) 使い方(32) linux(32) cvs(25) アジェンダとは(25) usb(25) thinkpad(23) 静電気(21) サンプル(20) 口コミ(20) ヨドバシ(20) アジェンダ(20) 画像(19) debian(19) ubuntu(19) mp980(18) f-01a(18) 手帳(17) tc-1(17) 秋葉原(16) ssh(16) subversion(16) グッズ(16) a6(15) 壁紙(15) ほぼ日手帳(15) c#(14) ダイソー(14) svn(14) 交換(14) インストール(13) 加湿器(13) firefox(12) ノート(12) 無印(12) 日本語(12) wiki(12) ganttproject(12) デロンギ(11) 方眼(11) ヨドバシカメラ(11) デザイン(11) nikkor(11) 設定(11) 作り方(11) dropbox(11) af(10) terastation(10) memcached(10) レビュー(10) カバー(10) カイロ(10) 2009(10) 除去(10) nikon(10) tortoisesvn(10) クラリチン(9) ガントチャート(9) 動画(9) ポメラ(9) ご査収(9) rcs(9) モジュール(9) n-01a(9) フィルム(9) 写真(9) システム手帳(9) edition(9) porter(9) xp(8) imap(8) 4c(8) docomo(8) ミニ6穴(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.275105s / load averages: 1.14, 0.74, 0.68
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)


