=head1 ArrayRefs of types this feature was added to Moose sometime after 0.17 which shipped with etch please uncomment the lines below when our system have migrated to lenny or a later Moose Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[ReadableDir]'); Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[WritableDir]'); Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[ReadableFile]'); Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[WritableFile]'); Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[WritablePath]'); Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[File]'); Moose::Util::TypeConstraints->create_parameterized_type_constraint ('ArrayRef[Dir]'); then you can delete the types defined the 'old' way below =cut subtype 'ArrayRef[ReadableDir]' => as 'ArrayRef' => where { foreach(@$_) { return unless -d $_; return unless -r $_; } return 1; } => message { "One of the directorys in the array is not readable!" }; subtype 'ArrayRef[WritableDir]' => as 'ArrayRef' => where { etc etc etc