"Class data"
package A; use Moose; has 'data' => ( is => 'ro', isa => 'Str', default => 'OH HAI' ); package B; # can't name a package B in real life use Moose; extends 'A'; has '+data' => ( default => 'OH HAI FROM B!' ); A->new->data # OH HAI B->new->data # OH HAI FROM B!