foreach (@plugin_list) {
require $_ or warn "Plugin $_ failed to load";
}
####
# Initialization:
foreach (@plugins) {
$_->init if UNIVERSAL::can($_, 'init');
}
##
##
#!/usr/bin/perl -w
use strict;
package Foo;
sub new
{
bless {}, shift;
}
my $bar = sub
{
return 'Bar!';
};
sub can
{
my ($self, $method) = @_;
return $bar if $method eq 'bar';
return $self->SUPER::can( $method );
}
package main;
my $foo = Foo->new();
if (UNIVERSAL::can( $foo, 'bar' ))
{
print "UNIVERSAL thinks Foo can bar\n";
}
if (my $bar = $foo->can( 'bar' ))
{
print "Foo can actually ", $foo->$bar(), "\n";
}
##
##
# Initialization:
foreach (@plugins)
{
eval
{
return unless $_->can( 'init' );
return $_->init();
}
}