User:EvanCarroll/Moose/Mro

Perl (prior to the yet unreleased 5.10) has a very illogical Method Resolution Order (MRO), this becomes apparent when using multiple inheritance dispatching. A fix for MI-dispatching was first popularized with Dameon's, which turned out to be a buggy hack that failed horribly in many cases. was unfortunately inducted into the CORE distro with perl v5.7.3 and remains in the CORE even day. Moose uses the newer jazzier C optimized, and is the new standard in all perl's greater than Perl 5.95.

Before  and , you had   which predates   by approximately six months and thankfully never made CORE. was goofy and mostly useless because if foo and bar were siblings and subclasses of baz you could not re-dispatch in foo to a method in bar.

Essentially  supported Method Dispatch only for linear patterns. supported them in a fashion that was quirky and made little sense. Without learning the quirks there is a high probability the new  does precisely what the programmer wants - it is intuitive. is also employed by Python.

The old way
The differences between  and   are outside of the range of this book; but, because vanilla perl doesn't even permit method resolution, and dispatch in the sense of the OO paradigm we will show   in its stead.