2010-12-19 7 views
0

私は奇妙なエラーが発生しました。 HTML::DOMforksモジュールを同時に使用すると、forksモジュールが正しく動作しません。HTML :: DOMはフォークモジュールの動作を停止します

奇妙なことに、これは一部のマシンでのみ発生し、他のマシンでは発生しません。例:

use forks; 
use HTML::DOM; 

$|=1; 

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

print "after\n"; 

sleep(3600); 

は私だけbeforeafter、決してinside標準出力に表示されます。それは標準threadsで動作しますが、私はそれを使いたくありません。

私がuse HTML::DOM;行をコメントアウトすると、突然動作を開始します。だから、私の質問は、

  1. 本当にバグですか?
  2. バグの場合はどこに報告しますか?それはHTML::DOMforksのバグですか?

編集:これは5.8.8 perlでのみ発生し、5.10.0では発生しません。

+0

私のためにここでうまく動作します。 LinuxのPerl 5.12.2、HTML-DOM 0.045、フォーク0.34 –

+1

5.8.8ものと思います。さて、私は現在フォークモジュールの著者に連絡しています。私はここで最初に尋ねました。 –

答えて

2

forksthreadsと同じインターフェイスを提供しているとすれば、forksよりHTML::DOMを報告する傾向が強くなります。特にforksは深い魔法をやっているので、HTML::DOMは普通の日常的なモジュールに過ぎません。その可能性は低いですHTML::DOMの著者は、あなたが何をしているか考えているでしょう。

-2

問題 "解決済み"

私は$PERLLIB$PERL5LIBという奇妙な設定をしています。これは、存在しないディレクトリや古いライブラリのディレクトリにリンクされています。いったん私はそれを修正し、forksはそれが必要な作業を開始した。

forksと同様の問題がある場合は、リンク先のリンク先に$PERLLIB$PERL5LIBを確認してください。

+1

これは本当に 'フォーク'とは関係ありません。 PERL5LIBが正しくない場合、Perlのインストール全体は、あなたのコードが何をしていても間違ったことをする可能性があります。 –

+0

あなたは正しいです。しかし、問題はここでのみ現れた。 –

関連する問題