NAME
   Module::Pluggable::Ordered - Call module plugins in a specified order

SYNOPSIS
       package Foo;
       use Module::Pluggable::Ordered;

       Foo->call_plugins("some_event", @stuff);

   Meanwhile, in a nearby module...

       package Foo::Plugin::One;
       sub some_event_order { 99 } # I get called last of all
       sub some_event { my ($self, @stuff) = @_; warn "Hello!" }

   And in another:

       package Foo::Plugin::Two;
       sub some_event_order { 13 } # I get called relatively early
       sub some_event { ... }

DESCRIPTION
   This module behaves exactly the same as "Module::Pluggable", supporting
   all of its options, but also mixes in the "call_plugins" method to your
   class. "call_plugins" acts a little like "Class::Trigger"; it takes the
   name of a method, and some parameters. Let's say we call it like so:

       __PACKAGE__->call_plugins("my_method", @something);

   "call_plugins" looks at the plugin modules found using
   "Module::Pluggable" for ones which provide "my_method_order". It sorts
   the modules numerically based on the result of this method, and then
   calls "$_->my_method(@something)" on them in order. This produces an
   effect a little like the System V init process, where files can specify
   where in the init sequence they want to be called.

SEE ALSO
   Module::Pluggable, Class::Trigger

AUTHOR
   Simon Cozens, <[email protected]>; please report bugs via the CPAN Request
   Tracker.

COPYRIGHT AND LICENSE
   Copyright 2004 by Simon Cozens

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.