前回のエントリーで値を返す返さないとかいう事を書いたが、それが1番分かりやすいのがインタラクティブシェルだ。
Pythonの場合は引数なしで起動、Rubyはirbでそれぞれインタラクティブシェルが使える。

irbで

>> name = "ken"
=> "ken"
>> name
=> "ken"

Pythonで

>>> name = "ken"
>>> name
'ken'

上の例ではirbの時は変数に代入した直後に値が返ってきている事が分かる。
Pythonのときは代入文自体は何も返していない。

特殊変数の値なんかもすぐに分かるので非常に重宝する

>> $/
=> "\n"
>> require 'pp'
=> true
>> pp $:
["/Library/Ruby/Site/1.8",
"/Library/Ruby/Site/1.8/powerpc-darwin9.0",
"/Library/Ruby/Site/1.8/universal-darwin9.0",
"/Library/Ruby/Site",
"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8",
"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin9.0",
"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0",
"."]
=> nil

この機能Perlにも欲しいなあと思ってたらperlshというのがあった。

perl -MCPAN -e shell
cpan> install Term::ReadLine::Gnu

これを実行し、インストールに成功すると

.cpan/build/Term-ReadLine-Gnu-1.17/eg/perlsh

と、こんなのが出来てる。

もしくは手動でダウンロードし、解凍したら
その中にegというフォルダがあってさらにその中にperlshというperlスクリプトが入っているので、これをパスの通った場所に移動してやると使えるようになる。
ただしこのファイル、1行目のshebang行が
#! /usr/local/bin/perl
となってるので、場合によっては書き換えなきゃならない。
僕の環境だと#! /opt/local/bin/perlだな。

いろいろ試してみよおっと。

カテゴリ:

トラックバック(0)

トラックバックURL: http://blog.beanz-net.jp/beanz_mtos/mt-tb.cgi/5

コメントする