У меня есть атрибут, который я хочу установить на основе других атрибутов класса. Я действительно хочу дефолт по атрибуту, который получает копию класса $self
, а не мета для атрибута. Я хочу сделать что-то подобное в своем классе:Использование Moose, как установить значение атрибута атрибута 'ro' во время выполнения?
after 'BUILD' => sub {
my $self = shift;
$self->meta->get_attribute('id')->column_name($self->_unique_key_name);
};
Но, я хочу сохранить черту атрибута RO? Это возможно. Я знаю, что MOP позволяет установить значение атрибута class, но я не могу понять, как установить атрибут в мета-атрибуте.
Мне не повезло с этой предпосылкой. Возможно ли, что ['-> default' только для чтения] (http://search.cpan.org/~drolsky/Class-MOP-1.11/lib/Class/MOP/Attribute.pm#Informational) –
@Evan: правильный , doh! отредактированный ответ. – Ether
Правильно, но это не объясняет основополагающий вопрос. Что делать, если 'default' должен получить доступ к' $ self' (классу) 'shift', нет объекта, созданного из класса, который использует этот атрибут. Это некоторая неясная мета для атрибута. –