2010-11-12 16 views
6

Sadece bir kez ayarlanabilen, gerekli olmayan bir Moose özniteliğine sahip olmak isterim."Bir kez yaz" Moose özniteliği yapabilir miyim?

Kullanıyorsam, nesnenin oluşturulmasının ardından özniteliği ayarlamalıyım, ancak daha sonra eklemek isteyebileceğim (önceden ayarlanmadığı sürece).

cevap

5

kullanın yöntem değiştirici:

has 'attr' => (
    is => 'rw', 
    predicate => 'is_set', 
    ... 
}; 

before 'attr' => sub { 
    my $self = shift; 
    die 'attr already set' if $self->is_set; 
}; 
+0

ölmeden kullanmak asla lütfen, yöntem ayrıca ölmek kullanmayan – qodeninja

+0

ölmek yok böyle diyoruz durdurmak için etrafta 'kullanırsınız, ölmek kötüdür ve ölmeli. croak kullanın ya da bunun yerine itiraf edin. – xenoterracide

+0

qodeninja: bağlıdır. Kefaletle çıkmak ve arayıcıyı tuzağa düşürmek isteyebilirsiniz. –

İlgili konular