package myTypes; use MooseX::Types -declare => [ qw( myOffset ) ]; ... subtype myOffset, as Int, where { ($_ >= 0) && ($_ <= 99) }, message { "offset '$_' is invalid (out of range)."} ; #### use myTypes qw( myOffset ); ... has 'my_offset' => ( is => 'rw', isa => 'MyOffset', default => 0, ); #### Attribute (my_offset) does not pass the type constraint because: Validation failed for 'MyOffset' with value 0 at constructor ...