読者です 読者をやめる 読者になる 読者になる

local::libがアプリケーションのモジュール配布に使えそう

local::lib
http://search.cpan.org/~mstrout/local-lib-1.002000/lib/local/lib.pm

local::libの向いてる用途は以下のような感じ。

This makes it easier to ship an application with an app-specific copy of a Perl module, or collection of modules. Useful in cases like when an upstream maintainer hasn't applied a patch to a module of theirs that you need for your application.

local::libを試すのに、以下のようなスクリプトを試してみる。

#!/usr/bin/env perl
use local::lib;
use HelloWorld;

HelloWorld->new->hello_world;

HelloWorld.pmを~/perl5/lib/perl5 に置けば、HelloWorldモジュールを上記のスクリプトでロードして使う事ができる。

以下のように書けば、~/perl5ではなくて、違うパスのも読めるので、アプリ用のライブラリを読める。これは、かなりいい使い方なんじゃないかなぁという気がしている。

use FindBin;
use local::lib "$FindBin::Bin/../support";  # app-local support library

CPANはライブラリを提供するべき場のような気がしていて、こうやってアプリケーション用のモジュールは、CPANにUPせずに別の場所に置く形にしたほうがいいんじゃないかなと。そういう用途にlocal::libはかなり使える気がする。