Undefined subroutine &main::confess
This is because you forgot to import the confess function. You're importing cluck, longmess and shortmess but nothing else from Carp:
use Carp qw(cluck longmess shortmess);
Really, longmess and shortmess are unlikely to be much use in end-user code. They might be helpful if you were writing an extension to Carp.
The four functions that are actually useful are croak, confess, carp, and cluck, and the least useful of these is cluck (which happens to be the only one of them that you're importing).
use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name