[Moscow.pm] Moose | Mouse вопрос
Ivan Petrov
i.petro.77.00 на gmail.com
Сб Июл 14 03:24:25 PDT 2012
есть нужда создать "мягкий" вариант конструктора, который будет
возвращать 'undef' в случае неудачи.
во всех хауту по Mouse/Moose пишут "не переопределяйте new"
соответственно если пытаться сделать это в BUILDARGS
sub BUILDARGS {
my $class = shift;
..
return undef unless $condition;
return {
abc => 'cde',
cde => ...
}
}
то Mouse ругается что не хеш мы возвращаем
c другой стороны определив new
sub new {
my ($class, @args) = @_;
...
return undef unless $condition;
return $self->SUPER::new({ abc => 'cde', cde => ... });
}
я добиваюсь чего хочу, но на такой пакет нелья поставить
make_immutable поскольку мой new оно заменит своим
выбрасывать исключение в BUILDARGS я не хочу, хочу вернуть undef.
как правильно поступить?
Подробная информация о списке рассылки Moscow-pm