環境
これは、特定のイベント ループを使用する方法を確認したかった perl テスト スクリプトですAnyEvent
。
# file test.pl :
#!/usr/bin/perl
use strict;
use warnings;
use AnyEvent;
use AnyEvent::Impl::EV;
my $cv = AnyEvent->condvar;
my $wait_one_and_a_half_seconds = AnyEvent->timer (
after => 0.5, # after how many seconds to invoke the cb?
cb => sub { # the callback to invoke
print ("Hello from callback\n");
$cv->send;
},
);
# now wait till our time has come
$cv->recv;
問題
上記のコードを実行したときに表示されるエラーは次のとおりです。
$ perl test.pl
Can't locate EV.pm in @INC (you may need to install the EV module) (@INC
contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18
/usr/local/lib/site_perl .) at /usr/local/lib/perl/5.18.2/AnyEvent/Impl/EV.pm
line 28.
BEGIN failed--compilation aborted at /usr/local/lib/perl/5.18.2/AnyEvent/Impl/EV.pm line 28.
Compilation failed in require at test.pl line 6.
BEGIN failed--compilation aborted at test.pl line 6.
それでも、AnyEvent
を使用してパッケージをインストールしましたがcpanm
、AnyEvent/Impl/EV.pm
ファイルは次の@INC
パスのいずれかに存在します。
$ ls /usr/local/lib/perl/5.18.2/AnyEvent/Impl/
Cocoa.pm Event.pm FLTK.pm IOAsync.pm Perl.pm Qt.pm UV.pm
EventLib.pm EV.pm Glib.pm Irssi.pm POE.pm Tk.pm
質問
これを修正するにはどうすればよいですか?
追記
エラー メッセージには を探していると表示されていますEV.pm
が、期待していたはずAnyEvent/Impl/EV.pm
です。
私が書いたものが実行時use AnyEvent::Impl::EV;
に変わったのはなぜですか?perl is looking for EV.pm