在没有IPC :: Shareable的perl中的子进程之间共享变量

时间:2011-02-02 20:59:49

标签: perl variables fork shared

我需要在不使用IPC::Shareable的情况下在Perl中的不同子进程和我的父进程之间共享变量。

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

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

2 个答案:

答案 0 :(得分:1)

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

  • 使用套接字或管道
  • 在您的进程之间传递消息
  • 使用两个进程读写的数据库
  • 使用两个进程读取和写入的文件(您可以使用信号告诉进程何时从文件中读取)
  • 设置内存缓存服务器以共享信息

...但是,因为你的真正的问题可能实际上是“我怎么能在Perl中做一些需要我的系统上没有安装的模块的东西,而且我没有root控制这个框和系统管理员不能或不会合作?“最好的答案是“使用local::lib”,但您可以在Matt Trout的博文"But I can't use CPAN!"中阅读更多选项。 (我发誓我每个星期发布这个链接。)

答案 1 :(得分:-1)

您是否尝试过threads::shared