天然パーマです。

ノンコードなファイルをモジュールと一緒にインストールしたければshareディレクトリを使う

Perlモジュールの話。当然のことかもしれないけど、知らなかったのでメモメモ。

配布したい小さなWebアプリがあって、出力のためのテンプレートファイルとかCSSとかどうやってモジュールに梱包したらよいだろうと思っていたんだけど、たぶんshareディレクトリを使うのがよさげ。Module::Installの場合はModule::Install::Shareにやり方とかが書いてある。通常はshareディレクトリにファイルを用意してMakefile.PLに以下でOK。

install_share 'share';

もしくはshareの部分を省略できる。

install_share;

ちゃんとModule::Install::Shareのpodには、リードオンリーなコードとは関係ないファイルを同封したい時があるよね!例えば、XMLスキーマだったり、YAMLデータファイルだったり。だったらこれだよ!と書いてある。

ちなみに

/Library/Perl/5.12/auto/share/dist/Module-Name/

みたいなディレクトリに入る。ファイルを呼び出す時は、File::ShareDirモジュールを使えばよい。俺の場合はこんな感じでできた。

use File::ShareDir qw/dist_file/;

my $file = dist_file('Module::Name', 'filename.txt' );

そういえば、shareってディレクトリ、CPAN漁ってたら結構あったな>< とりあえず、やり方がわかってスッキリ!!