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, ; 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.