in reply to Perl Grids

The problem is less the complexity, it's more the application that at least I lack. I have some small toy code that essentially does the following:

  1. Connect to another machine (via ssh, rsh or telnet)
  2. Spawn perl -x there
  3. Pipe some small code there that does MIME-ish decoding of stuff read from STDIN and outputs MIME-ish delimited Data::Dumper elements to STDOUT

With that code (about 50 lines or so), I get a remote Perl interpreter to which I can easily pass code to execute. The main uglyness is the passing of parameters back, as you most likely want to produce output (array elements) as soon as they become available and not when the remote function has returned completely.

The second ugly problem is of course the collecting and coordination of multiple such processes, and for that, I would either resort to a database for serialization (thus ditching my low-infrastructure approach) or have to resort to POE for any but the simplest tasks, neither of which is really nice.

I originally developed that code to implement a perlish rsync variant, so I only need some more or less synchronous execution, but the packaging of input and output parameters and an elegant method of actually writing the remote code is what paused the development. Using B::Deparse lets me transfer the trivial code over to the remote machine, so Perl catches syntax errors on the local side already, but what remains and stops me is some way of transferring data more efficiently via pack/unpack instead of Data::Dumper.

Update: Added last paragraph depicting the sad state of this idea