1 package DecoratorLibrary;
3 use MooseX::Types::Moose qw( Str ArrayRef HashRef Int );
18 subtype MyArrayRefBase,
21 coerce MyArrayRefBase,
23 via {[split(',', $_)]};
25 subtype MyArrayRefInt01,
32 subtype SubOfMyArrayRefInt01,
33 as MyArrayRefInt01[BiggerInt];
35 coerce MyArrayRefInt01,
37 via {[split('\.',$_)]},
39 via {[sort values(%$_)]};
41 subtype MyArrayRefInt02,
42 as MyArrayRefBase[Int];
44 subtype MyHashRefOfInts,
47 subtype MyHashRefOfStr,
50 coerce MyArrayRefInt02,
52 via {[split(':',$_)]},
54 via {[sort values(%$_)]},
56 via {[ sort map { length $_ } values(%$_) ]},
57 from HashRef[ArrayRef],
58 via {[ sort map { @$_ } values(%$_) ]};
60 subtype StrOrArrayRef,
63 subtype AtLeastOneInt,
68 (qw/Programming Teaching Banking/);