Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在perl中不使用IPC::Shareable在子进程之间共享变量_Perl_Variables_Fork_Shared - Fatal编程技术网

在perl中不使用IPC::Shareable在子进程之间共享变量

在perl中不使用IPC::Shareable在子进程之间共享变量,perl,variables,fork,shared,Perl,Variables,Fork,Shared,我需要在Perl中的不同子进程和父进程之间共享变量,而无需使用 我基本上只需要有一个全局变量,所有进程都可以读/写它。此外,如果这样可以使我的答案更简单,那么该变量只需要来自父级的写访问权限。孩子们只需要读它 编辑:如果我有办法将消息从一个子进程传递到另一个子进程,我的问题也可以解决。您尝试过吗?根据您提供的信息,很难判断哪一个是最佳解决方案,但您可以选择以下几个选项: 使用套接字或管道在进程之间传递消息 使用一个同时进行读写操作的数据库 使用一个或多个进程同时读取和写入的文件(可以使用信号通

我需要在Perl中的不同子进程和父进程之间共享变量,而无需使用

我基本上只需要有一个全局变量,所有进程都可以读/写它。此外,如果这样可以使我的答案更简单,那么该变量只需要来自父级的写访问权限。孩子们只需要读它


编辑:如果我有办法将消息从一个子进程传递到另一个子进程,我的问题也可以解决。

您尝试过吗?

根据您提供的信息,很难判断哪一个是最佳解决方案,但您可以选择以下几个选项:

  • 使用套接字或管道在进程之间传递消息
  • 使用一个同时进行读写操作的数据库
  • 使用一个或多个进程同时读取和写入的文件(可以使用信号通知进程何时读取文件)
  • 设置memcache服务器以共享信息


…然而,由于您真正的问题可能实际上是“如何在Perl中执行某些操作,而这些操作需要一个未安装在系统上的模块,并且我没有对该框的root控制权,并且系统管理员无法或不愿合作?”。最好的答案是“使用”,但你可以在马特·特劳特的博客文章中阅读更多选项。(我发誓我每周都会发布这个链接。)

我看到Perl线程出现了一些奇怪的行为,所以我转而使用forks。我想知道是否有一种方法可以在没有线程的情况下实现这一点,不幸的是,我没有访问IPC::Shareable=/为什么您没有访问IPC::Shareable的权限?没关系。我正在使用的计算机是在一个封闭的网络上工作的,默认情况下不附带该软件包。如果我足够努力的话,我可能会在我所有的机器上安装它,但我希望有另一种方法可以做到这一点。我的意思是你不需要安装它。你可以把它复制粘贴到你的脚本中。从长远来看,链接到它可能更好,因为社区比mst的文章更容易改进。