Так что я просто пытаюсь сделать очень простую вещь: определить пользовательский аксессуар для читателя для атрибута moose. Поэтому я стараюсь это:perl Moose accessor madness - не может определить только аксессуар для чтения или записи!
has 'compiled_regex' => (
isa => 'RegexpRef',
is => 'rw',
reader => 'get_compiled',
);
но get_compiled
никогда не вызывается, по-видимому, потому что compiled_regex
для чтения/записи. Без проблем. Затем я попробовать это:
has 'compiled_regex' => (
isa => 'RegexpRef',
writer => '_compile',
reader => 'get_compiled',
);
и производит следующее сообщение об ошибке:
Can't locate object method "compiled_regex" via package "PrettyRegex" at ../lib/Pretty/Regexs.pm line 39.
, который относится к этой линии, которая находится в _ compile
метод:
$self->compiled_regex(qr/$self->regex/);
Теперь я гавань» я получил много сна за последние 3 дня, поэтому, возможно, я в замешательстве, но кажется, что даже если бы это сработало, это создало бы бесконечный регресс, так как я определил автора как _compile
... так что wh я здесь пропал?
пытался Синан ответ, но все еще получает:
Can't locate object method "compiled_regex" via package "PrettyRegex" at ../lib/Pretty/Regexs.pm line 41.
Я не знаю Лось достаточно, чтобы понять, в чем проблема, но кто-то, пожалуйста, измените название сообщения в вопрос. –
Я почему-то создал имя читателя 'get_compiled_regex' при редактировании скрипта. Вот почему вы получаете это сообщение. –