Geyik nesnesi için bir modül yazıyorum. Bu nesneyi kullanan bir kullanıcıya (veya kendime ...) istediği gibi anında bazı alanlar eklemesine izin vermek istiyorum. Bu alanları önceden tanımlayamıyorum, çünkü ne olacağını bilmiyorum.Moose nesnelerine nasıl esnek bir şekilde veri ekleyebilirim?
# $obj is a ref to my Moose object
$obj->extra()->{new_thingie}="abc123"; # adds some arbitrary stuff to the object
say $obj->extra()->{new_thingie};
Bu işleri: Kullanıcıların sadece o karma malzeme koymak böylece
Şu anda sadece,rw
şeklinde ayarlanmış olan tip hashref ekstra adlı tek bir alan ekledi. Ama ... bu yaygın bir uygulama mı? Başka (muhtemelen daha zarif) fikirler var mı?
Not Bunu genişleten başka bir modül oluşturmak istemiyorum, bu sadece eklemek istediğim anında kullanılabilecek şeyler için.
+1 Bu gerçekten harika! –
Varolan olmayan bir alanı okumaya (ayarlamama) izin verirse erişimciyi değiştirebilir miyim? –
'custom_field' erişimcisini yaklaşık bir düzenleyici ile doldurabilir, arjları kontrol edebilir ve 'has_custom_field' öğesi false değerini döndürür. – phaylon