既出かもしれないけれど。
perlbrew で構築した環境で /usr/bin/perl と ~/perl5 のバージョンが違う場合
run スクリプトで環境変数を export してあげないと perlbrew の利点を活かしきれない。ちなみに bash を中心に扱っているので、自分の環境に合わせて読み替えてください。
run にどう書くか
perlbrew init したときに ~/.bashrc に追記した source の行があるはずなのでそれを辿って export を run にコピペしてやればよい。
手元の環境では
$ cat ./bashrc ..snip... if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi source /home/foo/perl5/perlbrew/etc/bashrc $ cat /home/foo/perl5/perlbrew/etc/bashrc export PATH=/home/foo/perl5/perlbrew/bin:/home/foo/perl5/perlbrew/perls/current/bin:${PATH}
よって、 run ファイルは
$ cat /etc/service/chirp/run #!/bin/sh cd /home/foo/chirp export PATH=/home/foo/perl5/perlbrew/bin:/home/foo/perl5/perlbrew/perls/current/bin:${PATH} exec setuidgid foo perl chirp.pl
としておく。これで perlbrew switch したバージョンを使えるようになる。
※ $^V を表示するテストスクリプトを走らせて確認しておくことで、嵌ることを回避できる