package Person; use Moose; use Moose::Util::TypeConstraints; enum Gender => qw(female male); has sex => ( is => 'rw', isa => 'Gender' ); package main; my $M = Person->new( sex => '' ); # fails #$M->sex( 'please' ); # fails