1 package DecoratorLibrary;
6 use MooseX::Types::Moose qw( Str ArrayRef HashRef Int );
16 subtype MyArrayRefBase,
19 coerce MyArrayRefBase,
21 via {[split(',', $_)]};
23 subtype MyArrayRefInt01,
26 coerce MyArrayRefInt01,
28 via {[split('\.',$_)]},
30 via {[sort values(%$_)]};
32 subtype MyArrayRefInt02,
33 as MyArrayRefBase[Int];
35 subtype MyHashRefOfInts,
38 subtype MyHashRefOfStr,
41 coerce MyArrayRefInt02,
43 via {[split(':',$_)]},
45 via {[sort values(%$_)]},
47 via {[ sort map { length $_ } values(%$_) ]},
48 ### Can't do HashRef[ArrayRef] here, need to force precidence I guess???
49 from HashRef([ArrayRef]),
50 via {[ sort map { @$_ } values(%$_)] };