A Day in the Life

perl でインタラクティブなシェルを実現する perlsh

http://search.cpan.org/~hayashi/Term-ReadLine-Gnu-1.15/eg/perlsh
最近 perl を勉強中で、ちょくちょく挙動に関する疑問が出てきます。ですが Ruby における irb のようなインタラクティブシェルが無い(と思っていた)ため、挙動をちょくちょく調べるのに、エディタ開いてソース書いたりしていてめんどくさい!と思ってたりします。

しかし今日 id:hideoki が挙動チェックでなにやら便利そうな対話型のシェルを使っており、それが perlsh というインタラクティブなシェルでした。

$ perlsh # 起動
main[10]$ @ary = qw(1 2 3 4 5)
1
2
3
4
5
main[11]$ map { $_ * $_ } grep { $_ % 2 } @ary
1
9
25

のように対話的に実行でき、返り値がわかりやすく表示されるためめっちゃ便利です。また↑カーソルやC-pでヒストリバック、C-rで履歴インクリメンタル検索、tabで補完などなど、普通のシェルっぽい機能ももちろん実装されてます。これでperlの習得速度が上がりそう。

インストール方法は Term::ReadLine::Gnu というライブラリに含まれているのでこれをcpanからインストールすればok、と思ったのですがcpan installで入れただけではperlshが含まれてなかったので、ソースを解凍してファイル群に含まれるperlshをpathが通ったディレクトリに放り込みました。もっと賢いインストール方法があるかも。

記事の一覧 >