なんか psh は高機能すぎて目的と違う気がしてきたので、結局最初の予定通り perlsh をインストール。以下手順。
- cpan から install Term::ReadLine::Gnu
- OSX 10.3 + PPC 環境では readline.h が見つからずに compile 失敗
- 手元に Fink で入れた Readline があったので、それを使って compile
- perlsh スクリプトを PATH の通ったところへ install
3 では
~/.cpan/build/Term-ReadLine-Gnu-1.16
に入って
perl Makefile.PL --prefix=/sw
make
sudo make install
Fink じゃない人は /opt とか適当に書き換えるよろし。
4 では
cd eg
sudo install -m 0755 perlsh /usr/local/bin
あと。perlsh は
#! /usr/local/bin/perl
になっているので、これを自分の使っている Perl インタープリタのパスに書き換えてやる必要あり。
僕にもできた。
ただ。これがどれくらい便利なのかはまだよく分かりません。
ちなみに、インタラクティブに Perl を使いたい場合、選択肢はまだまだあるらしい。psh の中の人が書いた
のいちばん下の方にある比較表が役に立つかも。
[追記] てゆーか fink に term-readline-gnu-pm581 があった。これならコンパイルエラーとか考える必要なかった。ただ結局ソース手に入れて eg/perlsh をごにょごにょ、っていう手順は必要だけど。
use ExtUtils::Installed
$installed = ExtUtils::Installed->new()
$installed->modules()
で採れる。static に呼んでも採れないっぽい。
.perlshrc
に2行目まで書いておくと楽かも。my つけちゃうと実行後解放されて呼べなくなるので注意。
perldoc perllocal 方式はなんかよく分からなかったので別解を探しましたとさ。これで少しは楽になったかも。
※ 不要になった psh は make uninstall しようとしたらそのやり方は古いからダメって怒られ、結局削除されないのんで、locate psh で探しまくって削除しまくりました。