Perl配布モジュールの作り方

このエントリーをはてなブックマークに追加

こんにちわ、技術部のkoyaです。

今回はPerl配布モジュールの作り方について書きます。
社内勉強会の内容ですが参考になれば幸いです。

準備

配布モジュールの開発を始める前に環境を準備します。

  1. perlbrew
  2. pm-uninstall
  3. Module::Starter

perlbrewはユーザーのホームディレクトリに好きなバージョンのPerlをインストールすることができ、システム環境を汚さずに開発できます。

インストールについてはこちらの記事が参考になります。

pm-uninstallはその名の通りPerlモジュールをアンインストールすることができます。開発中のモジュールをインストールしたりアンインストールするときに便利です。
Module::Starterは配布モジュールのひな形を作ってくれるCPANモジュールです。ひな形を作る方法はいくつかあるようですが、ピュアPerlのモジュールを作る場合はひとまずこちらを使うのが良いようです。

pm-uninstallとModule::StaterはcpanmまたはcpanからインストールすればOKです。
※pm-uninstallはApp::pmuninstallをインストールします。

モジュールのひな形作成

Module::Starterを使ってモジュールのひな形を作成します。

$module-starter --module=Foo \
   --author=”Your Name” \
   --email=yourmail@example.com \
   --build=Module::Build
   --ignore=git

--buildオプションで指定する、モジュールをビルドする仕組みも複数あるのですが今回はPerl 5.10からコアモジュールであるModule::Buildを使っていきます。

また、コマンドのオプションはあらかじめコンフィグファイル(~/.module-starter/config)に書いておくこともできます。

ひな形のファイル構成は次の通りです。

Foo/
  README
  Changes
  MANIFEST
  Build.PL
  t/(デフォルトの.tテストファイル含む)
  lib/Foo.pm
  .gitignore

開発の流れ

TDDで開発していきます。t/ディレクトリ以下にテストコード(*.t)を書き、lib/以下にモジュール(*.pm)のコードを書いていきます。
テストはモジュールディレクトリで次のコマンドを実行します。

$ prove -l
-lオプション: libディレクトリをインクルードパスに加えてテストを実行します。

また、配布が前提なので特に次のことに気をつけてモジュールを書きます。

  • PODでドキュメントを書く
  • use strict; use warningを使い、warningクリーンなコードを書く
  • モジュール呼び出し側に問題がある場合は、Carpモジュールのcarpやcroakを使って警告や例外を出す

モジュールのビルドとインストール

モジュールはBuild.PLを使ってBuildスクリプトを生成し、インストールします。

$ perl Build.PL
$ ./Build test
$ ./Build install

利用している環境にモジュールがインストールされ、useして使う事ができるようになります。

モジュールの配布

配布する場合はREADMEファイルにモジュールの説明を書き、次のコマンドでtarボールを作ります。

$ ./Build dist

このときMANIFESTファイルに記述されたファイルだけがパッケージングされます。
パッケージ漏れしているファイルがあると配布先でテストに失敗するなどトラブルになるため、次のコマンドを実行してテストしておきましょう。

$ ./Build disttest

また、MANIFESTファイルを管理するコマンドもビルドスクリプトには用意されています。

$ ./Build manifest

こちらを実行するとMANIFEST.SKIPファイルにないファイルをMANIFESTファイルに追加してくれます。
デフォルトのMANIFEST.SKIPファイルは次のコマンドで生成出来ます。

$ ./Build manifest_skip

その他

実行スクリプトを配布したい場合はbin/ディレクトリを作り、その下にPerlスクリプトを書きます。
※スクリプト先頭のperlパス(#!/usr/bin/perlなど)は、インストール時にインストール先の環境のperlパスに書き換えられてインストールされます。

参考

次の記事
« Prev Post
前の記事
Next Post »

1 コメント:

Write コメント
2015年10月14日 17:44 delete

dongtam
mu moi ra hom nay
tim phong tro
http://nhatroso.com/
nhạc sàn
tổng đài tư vấn luật
văn phòng luật hà nội
tổng đài tư vấn luật
thành lập công ty trọn gói
http://we-cooking.com/
chém gió
trung tâm tiếng anh
Nhạc Thành mỉm cười, tựa hồ như đã sớm đoán trước rằng Thanh Ma sẽ chạy trốn vậy.

- Kim Long, Phong Lôi Sí.

Nhạc Thành mỉm cười, tam sắc quang mang tràn ngập, sau đó một mảng lôi khí hóa thành hai cánh, thân ảnh như chớp động mà biến mất.

- Đứng lại cho ta.

Thân ảnh của Nhạc Thành lại hiện ra, sau đó một mảng khí cuồng bạo phóng ra.

Hắc mang tiêu tán, sắc mặt của Thanh Ma sau đó trở nên khó coi, hắn chăm chú nhìn Nhạc Thành, nhìn thấy thân thể Kim Long và Phong Lôi Sí của Nhạc Thành, trong mắt Thanh Ma liền hiện lên một vẻ sợ hãi.

- Nhạc Thành, ngươi đừng khinh người quá đáng, muốn giữ lại ta sao, ngươi cho rằng dễ dàng như vậy sao?

Reply
avatar
Related Posts Plugin for WordPress, Blogger...