plenv で perl の切り替えがうまく行かないメモ

ずっと Perl のバージョンを切り替えるツールとして perlbrew を使っていたけど、気がむいたので GitHub - tokuhirom/plenv: Perl binary manager を使ってみようとして失敗した時のメモ

現象

$ plenv global perl-5.16 とすると
5.16 is not installed on plenv. at ~/.plenv/bin/plenv と言われてしまう

原因

インストールする時に
$ plenv install perl-5.16.3 --as perl-5.16
とインストール名を perl-5.16 て名前に変更していた

原因2

plenv は ~/.plenv/versions/ の配下に Perl のバージョンに合わせて 5.16.3 とか 5.14.4 とかバージョン番号だけのディレクトリを作成して管理するのがデフォルト

'--as' オプションを付けると別のディレクトリ名にできるけど、perl-5.16 とかするとうまく動かない

plenv は global オプションを受け取った時に「気を利かせて」perl-5.16.3 から 'perl-' 部分を除いて 5.16.3 だと思ってスイッチしてくれる。普通に使う上ではそれでよい。plenv global 5.16.3 でも plenv global perl-5.16.3 でも受け入れてくれる。
plenv install する時に 5.16.3 ではなくて perl-5.16.3 と指定してもうまく行ったのも、同様な「配慮」によるもの。

しかし perlbrew 脳の私はインストール名として perl-5.16 を指定したため、すべてを台無しにしていた。

解決策

'--as' オプションを付ける時は perl- はじまりの名前を付けない