package Parent; sub boom { die "please don't call me" } package Child; sub boom; # exists but not defined, same as your \&boom but created at compile time sub DESTROY {} sub AUTOLOAD { die "call me instead" } package main; bless({},"Child")->boom