package plugin; our @ISA; sub SAVE { print join(',',@ISA)."\n"; print "SAVE von plugin\n"; } sub set_isa { my $self=shift; my $name=shift; @ISA=($name); } 1; package klasse; our @ISA; sub new { return bless {}, shift; } sub SAVE { print "SAVE von klasse\n"; } sub LOAD { print "LOAD von klasse\n"; } sub use_plugin { my $self=shift; my $name=shift; bless($self,$name); $self->set_isa(__PACKAGE__); } 1; my $klasse=klasse->new(); $klasse->use_plugin('plugin'); $klasse->SAVE; # <= das SAVE aus plugin $klasse->LOAD; # <= das LOAD aus klasse