[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Calling perl function in ruby

Loga Ganesan

2/24/2009 8:55:00 AM

Below code is used for calling c function in ruby.

#! /usr/bin/ruby

require '/usr/lib/ruby/1.8/inline.rb'

puts "Inline module......"
class MyTest
inline do |builder|
builder.c "
long factorial(int max) {
int i=max, result=1;
while (i >= 2) { result *= i--; }
return result;
}"
end
end
t = MyTest.new()
fact = t.factorial(5)
puts fact

Question:

Likewise, instead of c I have to write a perl function and should call
it?

Is there any way?
--
Posted via http://www.ruby-....

1 Answer

Brian Candler

2/24/2009 9:25:00 AM

0

Loga Ganesan wrote:
> Likewise, instead of c I have to write a perl function and should call
> it?
>
> Is there any way?

Only by embedding a whole Perl interpreter inside your Ruby interpreter.

Usually it's better to make the Perl code a completely separate process,
and use some form of IPC to talk to it. Simplest to set up are probably
HTTP, or XMLRPC over HTTP.

It depends on your problem domain. Maybe starting a Perl process using
IO.popen(...) and talking to it over (its) stdin/stdout will be easier.
If the data is binary, then a simple binary protocol like (4 bytes
length) followed by (N bytes of data) will be much faster than wrapping
the request in XML and HTTP.

--
Posted via http://www.ruby-....