【问题标题】:Errors with AnyEvent in Windows PerlWindows Perl 中的 AnyEvent 错误
【发布时间】:2013-11-18 07:55:35
【问题描述】:

我尝试在 Windows Perl 中使用 AnyEvent 的 fork_call。我写了一些示例代码:

use AnyEvent;
use AnyEvent::Util;
use Data::Dumper;

my $cv = AnyEvent -> condvar;
my $a;

fork_call {
    $a = 1;
    $cv -> send;
}, sub {
    $cv -> recv;
    print Dumper $a;
}

但我收到以下错误:

Can't locate object method "one_event" via package "AnyEvent" at
C:/Perl/perl/site/lib/AnyEvent/Util.pm line 329.
END failed--call queue aborted.    

【问题讨论】:

    标签: perl fork anyevent


    【解决方案1】:

    您的代码错误。如果您使用fork(),那么您将拥有$cv$a 的副本。正确的代码是:

    use AnyEvent;
    use AnyEvent::Util;
    
    my $cv = AnyEvent->condvar;
    my $a;
    
    fork_call {
        1;
    } sub {
        ($a) = @_;
        print($a);
        $cv->send();
    };
    $cv->wait();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多