1 package DecoratorLibrary;
3 use MooseX::Types::Moose qw( Str ArrayRef HashRef Int Object);
22 WierdIntergersArrayRef1
23 WierdIntergersArrayRef2
26 subtype MyArrayRefBase,
29 coerce MyArrayRefBase,
31 via {[split(',', $_)]};
33 subtype MyArrayRefInt01,
40 subtype SubOfMyArrayRefInt01,
41 as MyArrayRefInt01[BiggerInt];
43 coerce MyArrayRefInt01,
45 via {[split('\.',$_)]},
47 via {[sort values(%$_)]};
49 subtype MyArrayRefInt02,
50 as MyArrayRefBase[Int];
52 subtype MyHashRefOfInts,
55 subtype MyHashRefOfStr,
58 coerce MyArrayRefInt02,
60 via {[split(':',$_)]},
62 via {[sort values(%$_)]},
64 via {[ sort map { length $_ } values(%$_) ]},
65 from HashRef[ArrayRef],
66 via {[ sort map { @$_ } values(%$_) ]};
68 subtype StrOrArrayRef,
71 subtype AtLeastOneInt,
76 (qw/Programming Teaching Banking/);
94 subtype FiveOrTenOrFifteen,
95 as isFive|isTen|isFifteen;
97 subtype WierdIntergersArrayRef1,
98 as ArrayRef[FiveOrTenOrFifteen|VeryBigInt];
100 subtype WierdIntergersArrayRef2,
101 as ArrayRef[FiveOrTenOrFifteen|Object];