在 perl 中的子进程之间共享变量,无需 IPC::Shareable

发布于 2024-10-15 18:11:03 字数 258 浏览 2 评论 0原文

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

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

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

I need to share variables between different Children processes and my Parent process in Perl without the use of IPC::Shareable.

I basically just need to have a global variable that all processes would be able to read/write to. Also, the variable only needs write access from the parent if that would make my answer simpler. The Children only need to read it.

Edit: My problem could also be solved if there is a way for me to pass a message from one child process to another

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

-小熊_ 2024-10-22 18:11:03

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

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

......但是,由于您的真实 问题实际上可能是“我怎样才能在 Perl 中做一些需要我的系统上未安装的模块的事情,并且我对此框没有根控制权并且系统管理员不能或不会合作?” 。最好的答案是“使用 local::lib”,但您可以阅读更多内容Matt Trout 的博客文章中的选项 "但是我无法使用 CPAN!”。 (我发誓我每周都会发布此链接。)

From the information you have provided it's difficult to tell which is the best solution, but there are a few options available to you:

  • pass a message between your processes using sockets, or pipes
  • use a database that both processes read and write to
  • use a file(s) that both processes read and write to (you could use signals to tell a process when it is time to read from a file)
  • set up a memcache server to share information

...However, since your real problem might actually be "how can I do something in Perl that requires a module that isn't installed on my system, and I don't have root control over this box and sysadmins can't or won't cooperate?". the best answer is "use local::lib", but you can read more options in Matt Trout's blog post "But I can't use CPAN!". (I swear I post this link every single week.)

凶凌 2024-10-22 18:11:03

您是否尝试过threads::shared

Have you tried threads::shared?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文