[Perl]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク
perlのモジュールの雛形を作るコマンドにh2xsというコマンドがありますが、最近ではModule::Starterを使うのが主流のようです。また、Module::Starter::PBPではPerl Best Practicesが推奨するテンプレートにてモジュールが作成されます。

まずはCPANよりインストール。

$ cpan -i Module::Starter::PBP

次に初期セットアップ
$ perl -MModule::Starter::PBP=setup
Creating /home/hogehoge/.module-starter/PBP...done.
Creating /home/hogehoge/.module-starter/PBP/t...done.
Creating /home/hogehoge/.module-starter/config...
Please enter your full name: HogeHoge HogeHoge
Please enter an email address: devnull@ksknet.net
Writing /home/hogehoge/.module-starter/config...
done.
Installing templates...
        /home/hogehoge/.module-starter/PBP/Build.PL...done
        /home/hogehoge/.module-starter/PBP/Makefile.PL...done
        /home/hogehoge/.module-starter/PBP/README...done
        /home/hogehoge/.module-starter/PBP/Changes...done
        /home/hogehoge/.module-starter/PBP/Module.pm...done
        /home/hogehoge/.module-starter/PBP/t/pod-coverage.t...done
        /home/hogehoge/.module-starter/PBP/t/pod.t...done
        /home/hogehoge/.module-starter/PBP/t/perlcritic.t...done
Installation complete.

$HOME/.module-starter内にconfigとPBPのテンプレートが入ります。モジュールを作成するにはmodule-starterコマンドを使用します。

$ module-starter --module=My::ModuleName

これでMy-ModuleNameフォルダ以下が作成されます。ディレクトリを移動して、Buildしてみます。

$ cd My-ModuleName
$ perl Build.PL
Checking whether your kit is complete...
Looks good

Checking prerequisites...
Looks good

Creating new 'Build' script for 'My-ModuleName' version '0.0.3'

これでBuildファイルが作成されます。続いてperl Build

$ perl Build
Copying lib/My/ModuleName.pm -> blib/lib/My/ModuleName.pm
Manifying blib/lib/My/ModuleName.pm -> blib/libdoc/My::ModuleName.3pm

t/フォルダ以下に必要なテストプログラムを書き、パッケージの実装をします。その後perl Build testで問題がないことを確認。

perl Build test

モジュールの依存性がある場合はBuild.PLのrequiresに追記。またMakefile.PLを以下のように書き換え。こうすればBuild.PLの内容と互換性のあるMakefile.PLが作成される。

use lib qw(lib);
use Module::Build::Compat;
Module::Build::Compat->run_build_pl(args => \@ARGV);
Module::Build::Compat->write_makefile(build_class => 'Module::Build');

実際に走らせてみる
$ perl Makefile.PL
$ make
$ make test

次にmanifest(配布されるファイルのTable of contents)の作成。MANIFESTに入れたくないものは作成されるMANIFEST.SKIPに記載すればよい。

$ perl Build manifest

# 最後にパッケージを作成。tar.gzファイルができあがります。
$ perl Build dist

[参考] ITPro - Part1 正しいPerl/CGIの書き方

関連記事
XML::RSS::Parser
perlの特殊変数一覧
Digest::SHA
DBIx::Class::Schema::Loader
Weak references are not implemented in the version of perl
Class::Accessor - accessorの自動作成
Module::Starter::PBPによるモジュールの作成
perlの特殊リテラル
XMLRPC::Lite
HTTP::Request::Common
標準入力の内容を標示しないようにする
EncodeモジュールでのMIME Encode
Template::Toolkit
@EXPORTと@EXPORT_OK
our - グローバル変数の宣言
h2xs - perlモジュールの雛形を作成
use base - クラスの継承
perlでのSSH接続
モジュールのバージョン確認方法
Encode::Guess - 文字コードの判別
Config::Simple - 外部設定ファイルの利用
CSVファイルの処理
select - ファイルハンドルの設定
defined - 変数が未定義値かどうかを調べる
@INCの追加
delete - ハッシュの値とキーを削除
リファレンスの階層構造
Text::Template - テンプレートファイルの読み込み
ref - リファレンスが参照している変数のタイプ
Use of uninitialized value in string eq
XML::XPath - 要素の検索
Wide character in print at ...
DBMファイルの読み込み
XML::Simple - XMLデータの読み込みと書き出し
Data::Dumper - データ構造を出力
HTML::LinkExtor - リンクの取り出し
until - 制御文
Net::Ping - ネットワークの疎通確認
正規表現 - 量指定子
CSRをdecodeするルーチン
IP::Country::Fast - IP割り当て国を調べる
mkdir - ディレクトリの作成
pod2manでperlモジュールのインストール失敗
fileparse - ファイルパスからファイル名などを取り出す
モジュールが見つからない場合のエラー処理
Archive::Zip - ZIPファイルの解凍
Getopt::Long - コマンドラインからのオプションと値の受け取り
数字のソート
LWP::UserAgent - Webデータの取得
sleep - プログラムの一時停止
stat - ファイル情報の取得
gethostbyaddr - IPアドレスからホスト名を取得
chdir - ディレクトリの移動
べき乗の計算
@ISAとは
Perlでの複数行コメント
ALRMシグナルでのタイムアウト処理
gethostbyname - ホスト名からIPアドレスを取得
Config.pm - CPANの設定
perlモジュールの作成方法
環境変数の取り出し
カレンダーを表示する
perlでシステムコマンドを使用するには
正規表現 - 数字以外にマッチさせる
無名ハッシュへのリファレンス
values - ハッシュから値を取り出す
keys - ハッシュからキーを取り出すには
each - ハッシュからキーと値を取り出す
use vars - use strict内でグローバル変数を使用するには
pdflib - PDFファイルを生成する
if文で{}の省略
変数の局所化に関するmyとlocalの違い
サブルーチンから複数の配列を返すには
数値3桁ごとにカンマで区切るには
サブルーチンを取り込むには
小数点切り捨て
小数点切り上げ
一定時間後の日付を調べるには
Date::Calc - 日付の計算
ファイルをアップロードさせる
undef - 変数の定義を無効にする
perlでの日付の比較
標準入力からの読み込み
郵便番号の入力形式チェック
Perlモジュールのインストール方法
広告