2012-07-05 2 views
1

저는 포킹을 사용하는 스크립트를 작성하고 별도의 프로세스간에 변수를 공유해야합니다. 현재 나는 IPC::Shareable을 사용하고 있습니다. 그러나 해시 해시에서는 작동하지 않는 것 같습니다. 예를 들어 :IPC :: 공유 할 수있는 해쉬 해시 저장소 해시

$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을 줄 것이다.

누구든지 해결 방법을 알고 있습니까? 또는 해시의 해시를 저장할 수있는 비슷한 모듈? 감사!

+1

MetaCPAN의 [IPC :: Shareable] (https://metacpan.org/module/IPC::Shareable) – zostay

+0

거기에 해결책을 제안하지 않았습니다. 필자는 2001 년 이후에 출시되지 않은 CPAN 모듈을 사용하는 것을 거부합니다. MetaCPAN에 연결하는 것은 새롭고 더 나은 search.cpan.org입니다. – zostay

답변

0

DBM::Deep을 사용해 보시기 바랍니다. 해시 해시가 필요한 경우 공유 메모리 도구가 제공 할 것 이상의 기능을 수행했을 것입니다.

DBM :: Deep 데이터베이스를 일시적으로 사용하려면 RAM 디스크에 저장하거나 스크립트 실행이 끝날 때 정리할 수있는 임시 파일을 사용하면됩니다.