Thanks, but this is actually worse than piping to and from a perl process. It looks perlembed passes everything via command line arguments wrapped in a C function call. The Java program I'm working with has a macro language that probably calls Java library routines to do various things. I want Perl to do the same thing as well as seeing the underlying data if I want to take advantage of a perl library. There doesn't seem to be a way for perl to discover or act on the Java program's data. Hacking together interpreters across languages is something I haven't done. Sorry if I wasn't clear on this.