私はIO::Async::Loop::EVを使用してNet::Async::HTTPでGETリクエストをやっている。この単純化スクリプトで: なぜこのperl Net :: Async :: HTTP警告が表示されますか?
use Modern::Perl '2017';
use IO::Async::Loop::EV;
use Net::Async::HTTP;
use Future;
my $loop = IO::Async::Loop::EV->new;
my $http = Net::Async::HTTP->new(max_redirects => 0);
$loop->add($http);
my $f = $http->GET('https://www.perl.org')
->then(sub {
my $response = shift;
printf STDERR "got resp code %d\n", $response->code;
return Future->done;
});
$http->adopt_future($f->else_done);
$loop->run;
私はこの数回警告します:
EV: error in callback (ignoring): Can't call method "sysread" on an undefined value at .../IO/Async/Stream.pm line 974
使用しているとき、私はこの警告を取得IO::Async::Loop::Event(やはりIO::Async::Stream、行974)。
ただし、非セキュア(http)リンクの場合は、すべて正常です。だからIO::Async::SSLで何かが間違っている可能性があります。 (私は別のOSでこのマシンを試したが、まだそれらの警告を受け取っている)
なぜこの警告が複数回表示されるのですか?それはあなたのマシンでも起こりますか?
でのEVは、ファイル名と行番号を警告省略していますか? – choroba
@チョロバ編集。警告は、IO :: Async :: Streamの行974にあります –