После ответа phaylon на «Как гибко добавлять данные в объекты Moose?» , предположим, у меня есть следующий атрибут Moose:
has custom_fields => (
traits => [qw( Hash )],
isa => 'HashRef',
builder => '_build_custom_fields',
handles => {
custom_field => 'accessor',
has_custom_field => 'exists',
custom_fields => 'keys',
has_custom_fields => 'count',
delete_custom_field => 'delete',
},
);
sub _build_custom_fields { {} }
Теперь предположим, что я бы хотел каркнуть, если попытался прочитать (но не записать) несуществующее настраиваемое поле. phaylon предложил мне обернуть custom_field
модификатором вокруг. Я экспериментировал с модификаторами around
, следуя различным примерам в документации Moose, но не мог понять, как изменить дескриптор (а не просто метод объекта).
В качестве альтернативы, есть ли другой способ реализовать этот ключ, который можно выдумать?