何かしらのパスをオブジェクトに持たせる事は往々にしてある。 でそのオブジェクトがMooseで実装されているのであればMooseX::Types::Path::Classを使うのが地味にすんげー便利。 package MyObject; use Moose; use MooseX::Types::Path::Class qw{File Dir}; has file_path => ( is => 'rw', isa => File, coerce => 1, ); has dir_path => ( is => 'rw', isa => Dir, coerce => 1, ); my $obj = MyObject->new( file_path => '/foo/bar.yaml', dir_path => '/foo/baz/', ); print ref $obj->file_path