在perl中不使用IPC::Shareable在子进程之间共享变量
我需要在Perl中的不同子进程和父进程之间共享变量,而无需使用 我基本上只需要有一个全局变量,所有进程都可以读/写它。此外,如果这样可以使我的答案更简单,那么该变量只需要来自父级的写访问权限。孩子们只需要读它在perl中不使用IPC::Shareable在子进程之间共享变量,perl,variables,fork,shared,Perl,Variables,Fork,Shared,我需要在Perl中的不同子进程和父进程之间共享变量,而无需使用 我基本上只需要有一个全局变量,所有进程都可以读/写它。此外,如果这样可以使我的答案更简单,那么该变量只需要来自父级的写访问权限。孩子们只需要读它 编辑:如果我有办法将消息从一个子进程传递到另一个子进程,我的问题也可以解决。您尝试过吗?根据您提供的信息,很难判断哪一个是最佳解决方案,但您可以选择以下几个选项: 使用套接字或管道在进程之间传递消息 使用一个同时进行读写操作的数据库 使用一个或多个进程同时读取和写入的文件(可以使用信号通
编辑:如果我有办法将消息从一个子进程传递到另一个子进程,我的问题也可以解决。您尝试过吗?根据您提供的信息,很难判断哪一个是最佳解决方案,但您可以选择以下几个选项:
- 使用套接字或管道在进程之间传递消息
- 使用一个同时进行读写操作的数据库
- 使用一个或多个进程同时读取和写入的文件(可以使用信号通知进程何时读取文件)
- 设置memcache服务器以共享信息
…然而,由于您真正的问题可能实际上是“如何在Perl中执行某些操作,而这些操作需要一个未安装在系统上的模块,并且我没有对该框的root控制权,并且系统管理员无法或不愿合作?”。最好的答案是“使用”,但你可以在马特·特劳特的博客文章中阅读更多选项。(我发誓我每周都会发布这个链接。)我看到Perl线程出现了一些奇怪的行为,所以我转而使用forks。我想知道是否有一种方法可以在没有线程的情况下实现这一点,不幸的是,我没有访问IPC::Shareable=/为什么您没有访问IPC::Shareable的权限?没关系。我正在使用的计算机是在一个封闭的网络上工作的,默认情况下不附带该软件包。如果我足够努力的话,我可能会在我所有的机器上安装它,但我希望有另一种方法可以做到这一点。我的意思是你不需要安装它。你可以把它复制粘贴到你的脚本中。从长远来看,链接到它可能更好,因为社区比mst的文章更容易改进。