ゆーすけべー日記

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

Posted at — Feb 6, 2012

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漁ってたら結構あったな>< とりあえず、やり方がわかってスッキリ!!

comments powered by Disqus