package plugin; my @callbacks; sub register { push @callbacks, shift; } sub load { my $plugindir = shift; @callbacks = (); opendir PLUGIN, $plugindir or die "Cannot open dir $plugindir: + $!\n"; @plugins = grep { /\.pl$/ } readdir(PLUGIN); closedir PLUGIN; foreach $plugin (@plugins) { print "Loading $plugindir/$plugin...\n"; require "$plugindir/$plugin"; } return @callbacks; } 1; package example; sub new { return bless {}; } sub hello { my $self = shift; print "hello!\n"; } plugin::register(example->new); package main; use plugin; @plugins = plugin::load("a_directory"); foreach $plugin (@plugins) { $plugin->hello(); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
(Ovid) Re: Object oriented plugin interface
by Ovid (Cardinal) on Oct 27, 2001 at 04:02 UTC | |
|
Re: Object oriented plugin interface
by jackdied (Monk) on Oct 30, 2001 at 04:43 UTC |