in reply to Perl IPC and Windows

generally you can pass data between two processes with socket communication (IO::Socket::INET).

the shared memory approach is somewhat elegant; have a look here - it is called Win32::MemMap, not ShMem, as anyone (or at least i) would suggest. Tie-Win32MemMap sounds very good.

you further can use named pipes for your purpose. the package is called Win32::Pipe.

i could also imagine that you run the different programms as threads and let them share the needed information - as long as there is only one writing to that data and the others just reading. again: i haven't done that before.

HTH

Replies are listed 'Best First'.
Re: Re: Perl IPC and Windows
by Anonymous Monk on Sep 21, 2002 at 18:54 UTC
    Hello! Thanks for the advice. Unfortunately, I've already tried most of those ideas. Here's what I've found:

    IO::Socket::INET - The problem here is that blocking(0) doesn't work on sockets in Windows. I'm trying a work-around that was posted here.

    Win32::MemMap - This module has apparently fallen off the face of the earth. I can only find documentation for it, not the actual code. I would LOVE to use this module, if it still exists.

    Named Pipes - ..are blocking in windows. See http://aspn.activestate.com/ASPN/Reference/Products/ActivePerl/site/lib/Win32/Pipe.html under "limitations".
      this steps were taken directly from the site i pointed you:
      c:\> ppm
      PPM interactive shell (...) - type 'help' for available commands.
      PPM> set repository Jenda http://Jenda.Krynicky.cz/perl
      PPM> set save
      PPM> search
      
      the installation works for me, except the module needs Win32::API to be installed.
        Awsome. You rule! Thanks a ton. I got it (Win32::MemMap) by doing:
        c:\> ppm
        PPM interactive shell (...) - type 'help' for available commands.
        PPM> set repository Jenda http://Jenda.Krynicky.cz/perl
        PPM> install Win32::MemMap