理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

perlbrew を使用したときの Emacs 設定

perlbrew を使用したときなどは、システム標準の perl ではなく、自身で使用を選択した perl が使用されます。
これは perldoc なんかも同様で、例えばぼくの perldoc は以下にパスが通っています。

$ which perldoc
/Users/kiririmode/perl5/perlbrew/bin/perldoc

しかし、この状態で Emacs から cperl-perldoc を呼んでも、インストールしたはずのモジュールが見つからない、とエラーが吐かれてしまいます。これは、Emacs は上記 perldoc ではなく、別の perldoc を用いているためです。

ぼくもこの事象に困っていたのですが、どうも Emacs に自分が使用している perldoc を使わせるためには、以下のような設定をすれば良さそうです。

(load "cl-seq")

;;; Prepend perlbrew paths to exec-path
(mapc (lambda (x) (add-to-list 'exec-path x))
      (mapcar 'expand-file-name
              (list "~/perl5/perlbrew/bin" "~/perl5/perlbrew/perls/current/bin")))

;;; set PATH to be the same as exec-path, clobber the old PATH value.
(setenv "PATH"
        (reduce (lambda (a b) (concatenate 'string a ":" b))
                exec-path))