The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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;
}