package Foo; use Plugin 'Bar'; sub shared { print "Shared method" } sub foozle { print "Foo's foozle" } package Bar; our @PLUGIN_SUBS = qw(foozle); sub foozle { print "Bar's foozle" } # omitting Blip.. #package Blip; #sub foozle { print "Blip's foozle" } #======================= package main; $package = 'Foo'; $package->shared(); $package->foozle(); # Calls ***Bar's*** foozle