为了学习的目的,我正在建设的想法
事件驱动程序在Perl和注意到,它可能是很好的如果一个
被注册为事件处理程序的子例程可以在失败时,
只是安排另一个调用自己以后的时间。到目前为止,我有
想出这样的东西:
事件驱动程序在Perl和注意到,它可能是很好的如果一个
被注册为事件处理程序的子例程可以在失败时,
只是安排另一个调用自己以后的时间。到目前为止,我有
想出这样的东西:
my $cb; my $try = 3; $cb = sub { my $rc = do_stuff(); if (!$rc && --$try) { schedule_event($cb,10); # schedule $cb to be called in 10 seconds } else { do_other_stuff; } }; schedule_event($cb,0); # schedule initial call to $cb to be performed ASAP
有一种方法,代码里面的sub可以访问coderef
sub所以我可以不使用额外的变量?我想
调度这样的初始调用。
schedule_event( sub { ... },0);
我首先想到使用caller(0)[3],但这只是给了我一个
函数名,(__ANON__如果没有名称),而不是代码引用
其具有附接到其上的垫。
解决方法
我认为
Sub::Current会解决你的问题。