ogpxserverのレンタルサーバを使っていますが、perlのライブラリをローカル環境に構築してみました。

方法は以前にさくらレンタルサーバに構築した時とほぼ同じです。

手順

#local libの取得
$wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz

#ファイル解凍
$tar zxvf local-lib-1.008004.tar.gz

#インストール
$cd local-lib-1.008004
$perl Makefile.PL --bootstrap=$HOME/tmp/cpan
$make

#次のようにsudoを要求されますが、n入力して先に進んでいきます。
==> Should we try to re-execute the autoinstall process with 'sudo'? [y]

$make test
$make install

#環境変数の設定
$perl -I$HOME/tmp/cpan/lib/perl5 -Mlocal::lib=$HOME/tmp/cpan
※表示内容を.bashrcに追記する

export PERL_LOCAL_LIB_ROOT="/home/XXX/tmp/cpan";
export PERL_MB_OPT="--install_base /home/XXX/tmp/cpan";
export PERL_MM_OPT="INSTALL_BASE=/home/XXX/tmp/cpan";
export PERL5LIB="/home/XXX/tmp/cpan/lib/perl5/x86_64-linux-thread-multi:/home/homedqx/tmp/cpan/lib/perl5";
export PATH="/home/XXX/tmp/cpan/bin:$PATH";

これで準備完了

#cpanを実行
$cpan

#cpan起動後、好きなモジュールをインストールする
cpan > install JSON.pm

これcpanでローカルライブラリに好きなモジュールの追加ができます!

その他 備考録

今回のlocal::libとは直接関係ないですが、さくらレンタルサーバで使っていたperlプログラムをxserverに移行させた時に一部エラーが発生しました。

perlのURI::Escapeを使用したモジュールで発生したエラーです。
Undefined subroutine &main::uri_escape_utf8 called

おそらくバージョン違いとかで、メソッドが定義されていないという事だと思います。

#問題の箇所はここ
my $address = uri_escape_utf8($XXX);

#次のように修正することでエラーは発生しなくなった。
my $address = uri_escape(encode_utf8 $XXX);