package t::Object::Privacy::Sub; use strict; use warnings; use base "t::Object::Privacy"; use Object::LocalVars; give_methods our $self; sub protected_super_meth : Method { return $self->protected_meth; } sub private_super_meth : Method { return $self->private_meth; } sub protected_super_prop : Method { $self->set_protected_prop( 1 ); $self->set_class_protected_prop( 2 ); return $self->protected_prop + $self->class_protected_prop; } sub set_readonly_super_prop : Method { $self->set_readonly_prop( 1 ); return $self; } sub set_class_readonly_super_prop : Method { $self->set_class_readonly_prop( 1 ); return $self; } sub private_super_prop : Method { $self->set_private_prop( 1 ); $self->private_prop; }