Удалите массив из perl с помощью thread :: queue - PullRequest
3 голосов
/ 30 марта 2010

Я пытаюсь обработать данные с набором потоков и поставить их в очередь с другим, в настоящее время процесс постановки в очередь и удаления из очереди, кажется, не работает

Любые мысли ??

sub process() {
    while (my @DataElement = $DataQueue->dequeue()) {
        print "\t".$DataElement[0]."\n";
    }
}

Я использую следующее, чтобы поставить в очередь данные


my @l;
push(@l, $directories.$suffix);
push(@l, "testclass");
push(@l, $eachFile);
$DataQueue->enqueue(\@l);

Ответы [ 2 ]

5 голосов
/ 30 марта 2010

Вы обращаетесь к ссылке на массив без разыменования? Попробуйте

while (my $DataElementRef = $DataQueue->dequeue()) {
    my @DataElement = @$DataElementRef;
    print "\t".$DataElement[0]."\n";
}
1 голос
/ 19 сентября 2010

@ l не передается, поэтому вы не можете передать его ссылку на другой поток. Использовать темы :: общий доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...