Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Calling perl systems from other systems, e.g. R

by NERDVANA (Deacon)
on Apr 29, 2022 at 08:43 UTC ( [id://11143422]=note: print w/replies, xml ) Need Help??


in reply to Calling perl systems from other systems, e.g. R

You haven't said enough detail about the nature of the libraries you want to call, but if your needs are simple enough, you could just write a main loop that reads JSON lines from stdin, calls a function by name, and writes a JSON line back to stdout. This works on all OSes and calling perl functions by package name is so simple you don't need a framework. If you need to manage persistent objects, you could extend it with a concept of a "stash", or even just eval lines of input as perl, or maybe a combination of the two so that you get the benefit of parsing JSON for the data exchange but can still tell it to eval some things. Maybe the first line of input is JSON and the second line of input is code to eval using the $data from the previous line? Lots of options here.

I've never used R, but I assume most languages have the ability to start a child process and read/write lines to it.

  • Comment on Re: Calling perl systems from other systems, e.g. R

Replies are listed 'Best First'.
Re^2: Calling perl systems from other systems, e.g. R
by swl (Parson) on May 01, 2022 at 22:47 UTC

    JSON might well be simple enough in the first instance, and I see JSON::Server has just had a new release. Longer term it might be more efficient to use other formats for data transfer but it's best to get things working.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11143422]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-18 23:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found