package AbstractFoo; ... sub new { my $package = shift; bless { @_ }, $package; } ... my $foo1 = new SubclassOfAbstractFoo(); # GOOD my $foo2 = new AbstractFoo(); # BAD