Sadece bir kez başlatmak istediğim bir gönderme tablom var ve sadece bir işlev tarafından kullanılması amaçlanıyor. Gönderim tablosunu alt programın dışına ve aynı anonim bloğa taşımayı umuyordum, fakat dağıtım tablosu, işleve geçirilen nesnenin yöntemlerini çağırmak için kapaklar kullandığı için, tabloyu işlev dışına taşımak, nesneyi nesneye erişimden ayırır. . Bu sevk tablosu için başka seçeneklerim var mı?OO çağrıları kapalı olarak statik yerel gönderim tablosu
Perl 5.8 kullanıyorum, bu yüzden ne yazık ki state
değişkenlerini kullanamıyorum. dağıtım tablosunda
sub foo {
my ($self, $var) = @_;
my %funcs = (
a => sub { $self->_a() },
b => sub { $self->_b() },
...
);
return $funcs{$var}->();
}
Örneğindeki görebildiğim tek kapak anonim alt kuruluşlarda '$ self'in üzerindedir - gerçek kodda başkaları var mı? Öyleyse, lütfen bir örnek ekleyin. –