11 #-----------------------------------------------------------------------------
13 ## name No overriding methods
27 #-----------------------------------------------------------------------------
29 ## name Implicitly overrides a method
43 #-----------------------------------------------------------------------------
45 ## name Weirdly dispatching methods
62 #-----------------------------------------------------------------------------
64 ## name Make immutable
71 __PACKAGE__->meta->make_immutable;
77 __PACKAGE__->meta->make_immutable;
79 #-----------------------------------------------------------------------------
81 ## name Many modifiers
100 around foo => sub {};
102 augment ai => sub {};
104 override os => sub { super };
106 #-----------------------------------------------------------------------------
108 ## name Pull in a method from a role. Could go either way here.
127 #-----------------------------------------------------------------------------
140 extends 'Grandparent';
150 #-----------------------------------------------------------------------------
152 ## name Grandparent with modifiers
163 extends 'Grandparent';
165 before foo => sub {};
173 #-----------------------------------------------------------------------------
175 ## name Pull in a method from a role. Could go either way here.
194 #-----------------------------------------------------------------------------
207 extends 'Grandparent';
217 #-----------------------------------------------------------------------------
219 ## name Grandparent with modifiers
230 extends 'Grandparent';
232 before foo => sub {};
240 #-----------------------------------------------------------------------------
242 ## name Wrapping an implicit override
255 before foo => sub {};
258 #-----------------------------------------------------------------------------
260 ## name Wrapping an implicit override twice
273 before foo => sub {};
274 before foo => sub {};
277 #-----------------------------------------------------------------------------
279 ## name Imported functions
285 use List::Util 'reduce';
290 use List::Util 'reduce';