Maybe I am missing something. What you suggest works if the main program has a loop that is monitoring this shared memory block (or file). I know there are loops like this that are constantly monitoring the location of the mouse cursor. You can see the display change when the cursor is over a widget. So I know what I want is possible.
There are already files on the Linux system that are only present when a drive is inserted. My main program could detect the presence or absence of these files. Or it could do a system query of the SCSI bus (there are lots of system commands to choose from). But what I want is that this subroutine is always running with a sleep timer to recheck for the presence of these files or to re-issue the system command.
If I don't fork this subroutine, then I never return from the subroutine and my windows never update. But if I fork a process, can my subroutine update global variables in my main process? Is this something I can do in Perl? Or do I need to go to a different language?
There are only 10 types of people in this world... those who understand binary, and those who don't.