1
다른 분기 된 프로세스간에 데이터를 공유하려면 DBM::Deep
을 사용하고 있습니다. 나는이처럼 내 DBM :: 깊은 객체를 설정 :DBM :: Deep 설명 할 수없는 오류
my $todo = DBM::Deep->new(
file => "urls.db",
locking => 1,
autoflush => 1,
type => DBM::Deep->TYPE_HASH
);
을하지만 내 스크립트를 실행할 때 나는이 오류를 얻을 것 : 그래서 모든하지만 마지막 오류가 줄을해야 할
DBM::Deep: Cannot read sector at 673 in get_bucket_list() at new_forked_crawl.pl line 116
DBM::Deep: '30': Don't know what to do with type '' at new_forked_crawl.pl line 116
DBM::Deep: Cannot read sector at 1188 in get_bucket_list() at new_forked_crawl.pl line 116
DBM::Deep: '65536': Don't know what to do with type '' at new_forked_crawl.pl line 116
Can't locate object method "data" via package "DBM::Deep::Sector::File::BucketList" at /usr/lib/perl5/site_perl/5.8.8/DBM/Deep/Engine/File.pm line 160.
을 (116)는,하지만 그렇게 이상한 것은 그 라인 (116)입니다 실제로 DBM과는 아무 :: 깊은 없습니다 :
my $pid = fork();
if($pid) { #line 116
push(@forked_children,$pid);
}
#child process, do the work, son!
elsif($pid == 0) {
process_url($todo->{1}->{'urls_hash'}->{$url_id}{'url'},$url_id);
} #end $pid else
그래서 나는이에 갈 많은 아니라는 것을 알고,하지만 누군가는 이러한 오류 또는 일부에 실행 된 이것과 비슷한가? DBM :: Deep을 사용하는 방법에 관해 빠진 것이 있습니까? 감사!
와우, 훌륭한 호. 어떻게 추론 했습니까? – srchulo
파일 핸들이있는 개체를 복제하는 것은 일반적인 문제입니다. – ikegami