use DateTime; subtype DateTime => as Object => where { $_->isa('DateTime') }; #### use DateTime; subtype 'DateTime', as 'Object', where { $_->isa('DateTime') }; #### $ perl -MO=Deparse,-p -e ' use Moose; use Moose::Util::TypeConstraints; use DateTime; subtype DateTime => as Object => where { $_->isa(q{DateTime}) }; ' use Moose; use Moose::Util::TypeConstraints; use DateTime; use warnings; use strict 'refs'; subtype('DateTime', as('Object', where(sub { $_->isa('DateTime'); } ))); -e syntax OK #### $ perl -MO=Deparse,-p -e ' use Moose; use Moose::Util::TypeConstraints; use DateTime; subtype q{DateTime}, as Object => where { $_->isa(q{DateTime}) }; ' use Moose; use Moose::Util::TypeConstraints; use DateTime; use warnings; use strict 'refs'; subtype('DateTime', as('Object', where(sub { $_->isa('DateTime'); } ))); -e syntax OK #### $ perl -MO=Deparse,-p -e ' use Moose; use Moose::Util::TypeConstraints; use DateTime; subtype DateTime, as Object => where { $_->isa(q{DateTime}) }; ' use Moose; use Moose::Util::TypeConstraints; use DateTime; use warnings; use strict 'refs'; ('DateTime'->subtype, as('Object', where(sub { $_->isa('DateTime'); } ))); -e syntax OK