package Chair::LazyBoy; use base qw( Chair ); /* Alternatively type can register itself */ Chair->register_factory_type( lazy_boy => __PACKAGE__ ); sub move { my ($self, $where) = @_; call_for_help(); refuse() if !can_see_TV( $where ); } 1;