2009年03月10日 22:00 [Edit]

Ajax - perlを実行するAPI

つくっちゃいました。


まずはこれをご覧ください。



使い方

JS側はこんなです。

runJSON = function(name, func, perl, dp){
    if (! this['JSONP']) JSONP = {};
    JSONP[name] = func;
    (function(d, uri){
        var s = d.createElement('script');
        s.charset = 'UTF-8';
        s.src = uri + '&s=' + encodeURIComponent(perl);
        if (dp) s.src += '&dp=1';
        s.id = s.src;
        d.body.appendChild(s);
    })(document, 'http://api.dan.co.jp/perleval.cgi?c=JSONP.' + name, perl, dp);
};
perlEval = function(src, dst, dp){
    var d = document;
    runJSON('perl', function(json){
        dst.innerHTML = '';
        if (1 /*@cc_on -1@*/){
            dst.appendChild(d.createTextNode(json.error || json.result));
        }else{
            dst.innerText = json.error || json.result;
        }
    }, src.value, dp);
};

注意点

それでサーバー側なのですが、以下のようにしています。

  • URIは
    http://api.dan.co.jp/perleval.cgi?c=callback&s=perl_source
  • perlは現時点で5.8.9です。他のAPIで使っているのと一緒です。
  • api.dan.co.jpにモジュールがインストールされれれば、それが利用できます。上記の例を見てのとおり、標準以外のものも使えます。
  • ファイルシステムの読み書きはできません。適宜DATAを利用してください。
  • 実行時間は一秒以内に抑える必要があります。さもないとtimeoutします。
    timeout reached.
  • サブプロセスは使えません。
    'fork' trapped by operation mask at - line 1.

きっかけは、Codepadへの不満。PerlのVersionが5.8.0と古すぎる上、HTMLベースだと再利用がちょっと大変。というわけで別の車輪を再発明したわけです。上のサンプルを見てのとおり、perlの範囲内であればcodepadより自由な環境が楽しめます。

無保証です。サービス期間だけではなく、どんなモジュールが使えるかまで含めて。その代わりご自由にお使いになれます。いろいろ試してみてください。Enjoy!

Dan the Perl Monger


この記事へのトラックバックURL

この記事へのトラックバック
* 404 Blog Not Found:Ajax - perlを実行するAPI - http://blog.livedoor.jp/dankogai/archives/51186815.html >> Ajax - perlを実行するAPI つくっちゃいました。
perl エバラー【静電気日記@Heaven】at 2009年03月11日 11:52
燃え尽きた。
Big Sky :: danシェル書いた【Big Sky :: danシェル書いた】at 2009年03月11日 14:03
説明なし...
Big Sky :: dan the shellを日本語プログラミング言語「なでしこ」で書いた【Big Sky :: dan the shellを日本語プログラミング言語「なでしこ」で書いた】at 2009年03月11日 16:34
/etc/passwd 見れちゃった。
弾さんのperlを実行するAPIでお気楽ハックする【edry(えどりぃ)の粋狂】at 2009年03月11日 17:50
今度はPerlだけではありません。
Lightweight Languages を実行するAPI【404 Blog Not Found】at 2009年03月21日 06:51
この記事へのコメント
き、危険すぎるw
Posted by m11m at 2009年03月11日 01:10