HTML::DOM останавливает работу модуля forks

Я столкнулся со странной ошибкой. Когда я использую HTML::DOM и forks, модуль forks работает неправильно.

Странно то, что это происходит только на некоторых машинах, а не на других. Пример:

use forks;
use HTML::DOM;

$|=1;

print "before\n";
threads->new( sub {    
    $|=1;
    print "inside\n";
} );

print "after\n";

sleep(3600);

Я вижу только before и after, никогда не вижу inside в стандартном выводе. Он работает со стандартным threads, но я не хочу его использовать.

Если я закомментирую строку use HTML::DOM;, она вдруг начнет работать. Итак, мои вопросы,

  1. Это действительно ошибка?
  2. Если это ошибка, куда сообщить об этом? Это ошибка HTML::DOM, forks, обоих...?

редактировать: это происходит только с 5.8.8 perl, а не с 5.10.0.


person Karel Bílek    schedule 19.12.2010    source источник
comment
Он работает нормально для меня здесь. Perl 5.12.2 для Linux, HTML-DOM 0.045, форки 0.34.   -  person Rob N    schedule 19.12.2010
comment
Я думаю, что дело в 5.8.8. Что ж, сейчас я связываюсь с автором модуля forks. Я просто впервые спросил здесь.   -  person Karel Bílek    schedule 19.12.2010


Ответы (2)


Учитывая, что forks утверждает, что предоставляет тот же интерфейс, что и threads, я был бы более склонен сообщить об этом forks, а не HTML::DOM. Тем более, что forks творит глубокую магию, а HTML::DOM - обычный повседневный модуль. Маловероятно, что авторы HTML::DOM поймут, о чем вы.

person Rob N    schedule 19.12.2010

Проблема решена".

У меня были странные настройки в $PERLLIB и $PERL5LIB, которые ссылались на несуществующие каталоги или каталоги с устаревшими библиотеками. Как только я это исправил, forks заработало как надо.

Итак, если у вас есть подобные проблемы с forks, проверьте свои $PERLLIB и $PERL5LIB, если они ссылаются туда, куда должны ссылаться.

person Karel Bílek    schedule 20.12.2010
comment
Это действительно не имеет ничего общего с forks. Если ваш PERL5LIB неверен, то вся ваша установка Perl может делать неправильные вещи независимо от того, что делает ваш код. - person Rob N; 20.12.2010