Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Moose вопрос про атрибуты |
Автор: noize 15.4.2013, 21:21 | ||||
Здравствуйте. Занялся изучением Moose. Почитал пару статей в интернете, в голове картина в целом сформировалась. Взял пару примеров, подправил их на свой лад и вдруг обнаружил, что в аттрибуте с is => 'ro' я всё-равно могу поменять значение аттрибута. Пример: модуль MyMoo1.pm
и скрипт use_moo.pl
Скрипт use_moo.pl печатает значение 123, хотя в моём понимании Moose должен был ругнуться при попытке поменять значение аттрибута с аксессором ro. Или я что-то неправильно понял? |
Автор: DurRandir 15.4.2013, 22:55 |
Вы не можете менять только значение самого атрибута, т.е. $self->attr({}) предсказуемо выдаст ошибку. По логике, у вас вместо простого хэша должны быть так же объекты с readonly полями name и phone. И вот тогда их изменить не удастся. |
Автор: noize 15.4.2013, 23:23 |
Т.е. аксессор относится только к внутренним параметрам аттрибута(isa, default, clearer, etc), но не влияет, на те значения, которые я сохраняю в аттрибуте? UPD: проверил, действительно, так и есть. Спасибо за объяснение, стало чуточку понятней. |