=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 #### Class::MOP::Class::Immutable::Trait #### Class/MOP/Class/Immutable/Trait.pm **** Avbrief::EAD::Processor #### Avbrief/EAD/Processor.pm **** Couldn't load class (Avbrief::EAD::Processor) because: Could not parse type name (Moose::Util::TypeConstraints) correctly at /usr/lib/perl5/Moose/Util/TypeConstraints.pm line 104 Moose::Util::TypeConstraints::create_parameterized_type_constraint('Moose::Util::TypeConstraints', 'ArrayRef[ReadableDir]') called at /usr/share/perl5/Avbrief/TypeConstraints.pm line 72 require Avbrief/TypeConstraints.pm called at /usr/share/perl5/Avbrief/EAD/Processor.pm line 3 Avbrief::EAD::Processor::BEGIN() called at /usr/share/perl5/Avbrief/TypeConstraints.pm line 0 eval {...} called at /usr/share/perl5/Avbrief/TypeConstraints.pm line 0 require Avbrief/EAD/Processor.pm called at /usr/lib/perl5/Class/MOP.pm line 118 Class::MOP::__ANON__() called at /usr/share/perl5/Try/Tiny.pm line 71 eval {...} called at /usr/share/perl5/Try/Tiny.pm line 67 Try::Tiny::try('CODE(0x9a2e5b0)', 'Try::Tiny::Catch=REF(0x9f68570)') called at /usr/lib/perl5/Class/MOP.pm line 129 Class::MOP::load_first_existing_class('Avbrief::EAD::Processor') called at /usr/lib/perl5/Class/MOP.pm line 141 Class::MOP::load_class('Avbrief::EAD::Processor', undef) called at /usr/lib/perl5/Moose/Meta/Class.pm line 288 Moose::Meta::Class::superclasses(undef, 'Avbrief::EAD::Processor') called at /usr/lib/perl5/Moose.pm line 54 Moose::extends('Moose::Meta::Class=HASH(0x9edefa0)', 'Avbrief::EAD::Processor') called at /usr/lib/perl5/Moose/Exporter.pm line 294 Moose::extends('Avbrief::EAD::Processor') called at /usr/share/perl5/Avbrief/EAD/TAM/Processor.pm line 10 require Avbrief/EAD/TAM/Processor.pm called at /avprog/bin/process_eadesi_tam.pl line 4 main::BEGIN() called at /usr/share/perl5/Avbrief/TypeConstraints.pm line 0 eval {...} called at /usr/share/perl5/Avbrief/TypeConstraints.pm line 0 Compilation failed in require at /usr/share/perl5/Avbrief/EAD/Processor.pm line 3. BEGIN failed--compilation aborted at /usr/share/perl5/Avbrief/EAD/Processor.pm line 3. Compilation failed in require at /usr/lib/perl5/Class/MOP.pm line 118. at /usr/lib/perl5/Class/MOP.pm line 124 Class::MOP::__ANON__('Could not parse type name (Moose::Util::TypeConstraints) corr...') called at /usr/share/perl5/Try/Tiny.pm line 98 Try::Tiny::try('CODE(0x9a2e5b0)', 'Try::Tiny::Catch=REF(0x9f68570)') called at /usr/lib/perl5/Class/MOP.pm line 129 Class::MOP::load_first_existing_class('Avbrief::EAD::Processor') called at /usr/lib/perl5/Class/MOP.pm line 141 Class::MOP::load_class('Avbrief::EAD::Processor', undef) called at /usr/lib/perl5/Moose/Meta/Class.pm line 288 Moose::Meta::Class::superclasses(undef, 'Avbrief::EAD::Processor') called at /usr/lib/perl5/Moose.pm line 54 Moose::extends('Moose::Meta::Class=HASH(0x9edefa0)', 'Avbrief::EAD::Processor') called at /usr/lib/perl5/Moose/Exporter.pm line 294 Moose::extends('Avbrief::EAD::Processor') called at /usr/share/perl5/Avbrief/EAD/TAM/Processor.pm line 10 require Avbrief/EAD/TAM/Processor.pm called at /avprog/bin/process_eadesi_tam.pl line 4 main::BEGIN() called at /usr/share/perl5/Avbrief/EAD/TAM/Processor.pm line 0 eval {...} called at /usr/share/perl5/Avbrief/EAD/TAM/Processor.pm line 0 Compilation failed in require at /avprog/bin/process_eadesi_tam.pl line 4. BEGIN failed--compilation aborted at /avprog/bin/process_eadesi_tam.pl line 4.