The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Class/DispatchToAll version 0.01
================================

See the Docs of Damian Conways Module Class::Delegation for a good introduction about Dispatching vs. Inheritance

Class::DispatchToAll enables you to call B<all> instantances of a method in your inheritance tree (or labyrinth..).

The standard Perl behaviour is to call only the lefternmost instance it can fing doing a depth first traversial.

Imagine the following class structure:
              C
             /
   A    B  C::C
    \  / \ /
   A::A   D
       \ /
     My::Class

Perl will try to find a method in this mess in this order:

 My::Class -> A::A  ->  A  ->  B  ->  D  -> B  -> C::C -> C

(Note that it will look twice in C<B> because C<B> is a parent of both C<A::A> and C<D>))

As soon as Perl finds the method somewhere, it will short-circuit out of it's search and invoke the method.

And that is exactly the behaviour C<Class::DispatchToAll> changes.

If you use C<dispatch_to_all> (provided by C<Class::DispatchToAll>) to call your method, Perl will look in all of the aforementioned packages and run all the methods it can find. It will even collect all the return values and return them to you as an array, if you want it too.


INSTALLATION

To install this module type the following:

    perl Build.PL
    ./Build
    ./Build test
    sudo ./Build install

AUTHOR

Thomas Klausner, domm@cpan.org

COPYRIGHT AND LICENCE

Class::DispatchToAll is Copyright (c) 2002,2006 Thomas Klausner.
All rights reserved.

You may use and distribute this module according to the same terms
that Perl is distributed under