Mooで型のチェック
Mooでは、isaはcoderef(http://search.cpan.org/~haarg/Moo-1.004002/lib/Moo.pm#has)になっていてMooseとは意味が違っている。
MooX::Types::MooseLike::Baseを使うとIntやStrと書け、Mooseに似た書き方ができるようになる。
クラスやEnumの指定はMooseとは似ておらず、以下のように書く。
package PC { use Moo; use MooX::Types::MooseLike::Base qw(InstanceOf Enum); has cpu => (is => 'rw', isa => InstanceOf['CPU']); has optical => (is => 'rw', isa => Enum['DVD', 'Blu-ray']); }