対話式Perl
30分プログラム、その37。
PythonにもRubyにもHaskellにも.....ある対話環境がPerlにないのは不満なので、簡単なやつを作ってしまおう。
> 'a' => 'a' > $name = 'mzp' 'mzp' >"hello $name" => 'hello mzp'
use strict; use warnings; use Data::Dumper; use Term::ReadLine; local $Data::Dumper::Purity=0; local $Data::Dumper::Terse=1; my $term = new Term::ReadLine 'term'; while(defined($_=$term->readline('>'))){ no strict; my @result = eval($_); if($@){ print $@; }else{ print "=> ",Dumper(@result); } $term->addhistory($_) if /^\s+$/; }
- Readlineは必須でしょう
- 一応、リストでも表示できるけど、あまりうまくいかない
- perl -de 0とかで対話環境っぽいのができるのはしってる。でも、評価した値がすぐにでてこないのが不満
- 結構、よっぱらってる