use strict;
use warnings;
my @addons;
require "addon1.pl";
my $reg = \INIT();
push(@addons, $reg);
require "addon2.pl";
$reg = \INIT();
push(@addons, $reg);
####
sub INIT {
my $name = shift;
print "Hello, $name!";
}
####
$addons[0]->INIT("Jesus");
####
package addon1;
sub new
{
my $class = shift;
my $self = [];
return bless $self, $class;
}
sub ACE_INIT {
shift;
my $test = shift;
$$test = "bar";
}
return "addon1";
####
my $pluginname = do "addon1.pl";
my $plugin = new $pluginname;
my $test = "Foo...";
$plugin->ACE_INIT(\$test);
print $test . "\n";