NAME

Module::Notify - trigger a callback when a module is loaded

SYNOPSIS

   use Module::Notify;
   
   Module::Notify->new(Foo => sub { print "2\n" });
   
   # Count to three...
   print "1\n";
   require Foo;
   print "3\n";

DESCRIPTION

Module::Notify runs callback code when it detects that a particular module has been loaded.

Constructor

new($module_name, $callback)

Runs the callback when the module is loaded.

Unlike most OO modules, you can freely use this in void context, and it will work fine. However, if you keep the returned reference, you can call methods on it:

   my $handle = Module::Notify->new($module, $callback);

If the module is already loaded, runs the callback immediately, and returns undef instead of an object.

Object Methods

cancel

Cancels the callback.

CAVEATS

Module::Notify works through an @INC hook. It ought to be the first item in @INC and does its best to insert itself as $INC[0] at every opportunity it gets.

If any other path or hook does end up before Module::Notify's @INC hook, then any modules loaded via that path or hook will escape Module::Notify's notice.

BUGS

Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=Module-Notify.

SEE ALSO

Module::Runtime.

AUTHOR

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE

This software is copyright (c) 2013 by Toby Inkster.

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

DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.