Synchronous but useful embedded Perl for node.js
This module is still working, but @tokuhirom don't want to maintain this module. MAINTAINER needed! Please contact me at github issues.
SYNOPSIS
var Perl = require('perl').Perl;
var perl = new Perl();
var ret = perl.evaluate("reverse 'yappo'");
console.log(ret); // => oppay
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://utf-8.jp/');
console.log(res.as_string());
Classes
require('perl').Perl
var perl = new Perl()
Create new instance of Perl.
var retval = perl.evaluate(Str code)
evaluate the perl code and get a return value.
var klass = perl.getClass(Str name)
Get a class object(Instance of PerlClass) from perl.
var klass = Perl.blessed(obj)
Same as Scalar::Util::blessed.
var val = perl[funcname]
Get a PerlMethod object.
require('perl-simple').PerlObject
var val = obj[funcname]
Get a PerlMethod object.
require('perl-simple').PerlClass
You can get a instance of this class by Perl#getClass.
var val = klass[funcname]
Get a PerlMethod object.
require('perl-simple').PerlMethod
var val = method()
Call perl5 function and get a return value in scalar context.
You get a exception when Perl5 throws exception.
var val = method.callList()
Same as above, but callList calls function in list context.
Installation
node-perl requires a perl5 binary built with -fPIC and -Duseshrplib. Normally, linux distribution's system perl is usable.
You can build a perl binary for node-perl with perlbrew command.
$ PERLBREW_CONFIGURE_FLAGS=-de perlbrew install perl-5.16.1 -Duseshrplib -Duseithreads -Dusethreads -Accflags='-fPIC' -nv
$ perlbrew use perl-5.16.1
On OSX
If you got a error while loading libperl.dylib, please set a DYLD_LIBRARY_PATH
to perl5 library path.
Notes
- The calls to Perl are synchronous ones.
THANKS TO
Based on https://github.com/hideo55/node-perl.
License
http://tokuhirom.mit-license.org/