tokuhirom's Blog

Dan the API shell 書いた

http://gist.github.com/77254

Dan さんの perl eval API が便利だとおもった。どんなコードが実行できるのかためしたかったので、shell っぽく eval することにした。

Term::ReadLine で shell っぽく入力させて、URI::Escape でエスケープして、LWP::UserAgent で API になげて JSON.pm で eval させてるだけ。

以下は実行例

dan> use XML::LibXML;
Warning: XML::LibXML compiled against libxml2 20703, but runtime libxml2 is older 20702

dan> unpack 'p', 0xdeadbeef;

dan> print "$ENV{SERVER_ADMIN}\n";
<ちょ、メアドみえてる>@gmail.com

dan> print $], "\n";
5.008009

dan> print "$ENV{SERVER_SOFTWARE}\n";
Apache/2.0.63 (FreeBSD) mod_perl/2.0.4 Perl/v5.8.9

dan> print join "\n", @INC;
/usr/local/lib/perl5/5.8.9/BSDPAN
/usr/local/lib/perl5/site_perl/5.8.9/mach
/usr/local/lib/perl5/site_perl/5.8.9
/usr/local/lib/perl5/5.8.9/mach
/usr/local/lib/perl5/5.8.9
.

dan> use Config; print join "\n", @Config{qw/myuname myhostname mydomain myarchname perladmin/};
freebsd freebsd.org 7.1-stable freebsd 7.1-stable #0: sun feb 8 13:18:55 pst 2009 [email protected]:usrsrcsysmagickernelpath i386 
jail-32
.isc.freebsd.org
i386-freebsd
[email protected]

dan> ls /usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/
/usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/.
/usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/..
/usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/Attribute.pm
/usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/Class.pm
/usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/Method
/usr/local/lib/perl5/site_perl/5.8.9/Mouse/Meta/Role.pm