package Mouse::Util::TypeConstraints::CarplessErrors { use Mouse; extends 'Mouse::Util::TypeConstraints'; sub throw_error :method { my ($self, $message, %args) = @_; warn $message; } } package Foo { use Mouse; use Mouse::Util::TypeConstraints::CarplessErrors; enum 'ErrorMode' => qw; has 'error_mode' => ( is => 'rw', isa => 'ErrorMode', default => 'error' ); } Foo->new->error_mode('asdsdf');