{ my $caller = caller ; die unless $caller eq __PACKAGE__ ; } #### package MyClass ; my @Registry ; my $id = 0 ; sub new { my $class = shift ; my $objID = $id++ ; $Registry[$objID] = { some => 'attribute', goes => 'here' } return bless \$objID,$class ; } #### sub some : lvalue { my $self = shift ; # Do checks if we are a private or protected method # HERE! return $Registry[$$self]{some} ; } #### package MyClass ; use Class::Bronto ; # Sorry, can't find a meaningful name! private 'scalar','priv' ; protected 'array','prot' ; public 'hash','pub' ;