最近はplenvを使うべきって感じだったんだけど、promptとかemacsとかを対応させるのがちょっと面倒でサボっていた。そろそろやばいと思ったので全部plenvに移行した。
インストール
macだったらbrewで提供されているので入れる。https://github.com/tokuhirom/plenv を参考に。
$ brew update $ brew install plenv $ brew install perl-build $ plenv install 5.14.2 # お好みのperl入れる $ plenv shell 5.14.2 $ plenv install-cpanm
promptに現在利用しているperlのversionを出力する
以下のように、promptにperlのversion出てるとうれしいのでそういう感じにする。
plenv version-nameを使うことで現在のversionの名前をとれるのでそれを使う。ついでにrbenvも出力してみる
PERL_VERSION_STRING="perl:"$(plenv version-name) RUBY_VERSION_STRING="ruby:"$(rbenv version-name) PROMPT='%F{blue}${PERL_VERSION_STRING} ${RUBY_VERSION_STRING}'
emacsからplenvを使う
plenv.elがあるのでそれを使う。http://karupanerura.hateblo.jp/entry/2013/03/11/090210 あたりも参考に。
まずpackage.el使ってplenv.elを入れる。
M-x package-install plenv
そのあとrequireして、defaultのperl versionを書いておく。
(require 'plenv) (plenv-global "5.14.2")
これで適当にemacsからshell経由でperlを呼ぶと、指定したperlを使ってくれるので、例えばflymakeとかはperlって普通に書いても良い。
(defun flymake-perl-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-with-folder-structure)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "perl" (list "-wc" local-file))))
https://github.com/karupanerura/plenv.el#use-with-flymake-perl に書いてあるように、guess-plenv-perl-pathも使えるのでそちらを使っても安心かもしれない。
まとめ
ちょっと苦労したけどとりあえずこれでplenvに移行できた。まだあんまり使ってないので、またハマったらその辺りを書こうと思う。