tokuhirom's Blog

なんてこった…CPANモジュールをnode.jsで動かしてしまうライブラリ「node-perl」



https://github.com/tokuhirom/node-perl/

CPAN modulenode.jsnode-perl
var Perl = require('../index.js').Perl;
var perl = new Perl();
perl.use('LWP::UserAgent');
var ua = perl.getClass('LWP::UserAgent').new();
var res = ua.get('http://mixi.jp/');
console.log(res.as_string());


node-perl  C++ MIT License

なぜつくったか


CPAN  porting 

CPAN 

 FizzBuzz  Acme::FizzBuzz 
var Perl = require('perl').Perl;
(new Perl()).use('Acme::FizzBuzz');


先行研究について


http://d.hatena.ne.jp/hide_o_55/20110222/1298383928
https://github.com/hideo55/node-perl
  hide_o_55 npm  publish perl hide_o_55  node-perl ()
 thanks!!

 hide_o_55 stdio 

むずかしかった点について

プロパティアクセスをフックしてメソッドオブジェクトをかえしてるのが、参考コードがなくてちょっと面倒だったかな。このおかげですごい楽につかえるようになってます。

SvTYPE まわりの処理もたいがい面倒なのだけど、このへんは msgpack を参考にしたので楽でした。

全般的に情報がすくないけど、node がでる前にくらべるとググればそれなりに情報えられるのでいいね。

あと、instanceof のとりかたがわからなかったけど HasInstance でした。

注意点

node-waf --perl=/usr/bin/perl configure build

 perl ithreads ithreads  Perl 

 mod_perl 

pmconnect について


http://d.hatena.ne.jp/ysano2005/20060805/1154760428
Perl js pmconnect Shibuya.pm  pmconnect  pmconnect 

これ blocking しますよね?




v8  v8  node.js 姿

Node.js 

なんで今さら node-waf なんですか?


 gyp Patches welcome 
 node-gyp