Unless you do some tricky shared memory manipulation (
IPC::SysV on CPAN), using
fork to execute your remote shell commands won't let you avoid the temporary file thing. Either you can give up on simultaneous access, or on the temp files (as far as I can see).
The piping thing certainly works. What I would do is something like this:
- Make an array of host names
- Loop through the array
- Set an alarm to time out if the command doesn't finish within 30 seconds (or whatever)
- Execute the remsh command
- Store the hostname => remsh output in your hash
- Reset the alarm to zero seconds
- Do something or other with the hash
The disclaimer, of course, is that I've only been programming in a Unix environment for a couple of years, so there may be a module or a technique that does this better.