15
Bu NedenNeden bir sözlük değişkenini ayrı ifadelerde bildirmeyi ve başlatmayı seçer?
my $read_watcher; $read_watcher = AnyEvent->io (...
yerine
my $read_watcher = AnyEvent->io (...
ait kullanıyor AnyEvent::Intro
# register a read watcher
my $read_watcher; $read_watcher = AnyEvent->io (
fh => $fh,
poll => "r",
cb => sub {
my $len = sysread $fh, $response, 1024, length $response;
if ($len <= 0) {
# we are done, or an error occurred, lets ignore the latter
undef $read_watcher; # no longer interested
$cv->send ($response); # send results
}
},
);
bir alıntıdır?
; muhtemelen sadece stil – ShinTakezou
ShinTakezou: Denedin mi? sıkı? 'Küresel sembol' $ read_watcher 'atmak' açık paket adını gerektirir 'ikincisi oldukça farklıdır. Kesin olmasa bile, lexical $ read_watcher coderef'in içindeki paketlenmiş $ read_watcher'a farklı bir değişken olacaktır. – MkV
AnyEvent :: Intro'dan: Bunun sebebi, Perl'in çalışmasında bir tuhaflıktır: "my" ile bildirilen değişken adları yalnızca bir sonraki ifadede görülebilir. Geri arama dahil tüm "AnyEvent-> io" çağrısı, tek bir bildirimde yapılırsa, geri arama $ read_watcher değişkenine "undef" ini atlatamaz, bu nedenle iki ifadede yapılır. – MkV