我正在perl中编写一个脚本,我在其中使用forking,我需要在不同的进程之间共享变量。目前我正在使用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
。
有谁知道如何解决这个问题?还是一个允许我存储哈希散列的类似模块?谢谢!
答案 0 :(得分:0)
我建议您尝试DBM::Deep。如果你需要散列哈希值,你可能已经超越了共享内存工具会给你的东西。
如果您真的希望它是瞬态的,可以将DBM :: Deep数据库存储在RAM磁盘中,或者只使用可以在脚本运行结束时清理的临时文件。