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";