1

我正在用 perl 编写一个脚本,我在其中使用分叉,我需要在单独的进程之间共享变量。目前我正在使用IPC::Shareable,效果很好。但是,它似乎不适用于哈希哈希。例如:

$todo->{$next_todo_key}{'urls_hash'} = \%temp;

or 

$todo->{$next_todo_key}{'url_idlist'} = $url_idlist;

会给我错误IPC::Shareable::SharedMem: shmget: File exists at /usr/lib/perl5/site_perl/5.8.8/IPC/Shareable.pm line 566 Could not create shared memory segment: File exists

有谁知道如何解决这一问题?或者类似的模块可以让我存储散列的散列?谢谢!

4

1 回答 1

0

我建议给DBM::Deep一个尝试。如果您需要散列的散列,您可能已经超出了共享内存工具所能提供的范围。

如果您真的希望它是临时的,您可以将 DBM::Deep 数据库存储在 RAM 磁盘中,或者只使用可以在脚本运行结束时清理的临时文件。

于 2012-07-05T20:32:56.657 回答