package main; print $_->handle for (Bar->new, Baz->new); package Foo; sub new { return bless {}, shift } package Bar; use base 'Foo'; sub handle { return "Bar's handler was called\n" } package Baz; use base 'Foo'; sub handle { return "Baz's handler was called\n" }