That's something an attribute could very elegantly handle:
in reply to Re: Re^5: Class::InsideOut - yet another riff on inside out objects.
in thread Class::InsideOut - yet another riff on inside out objects.
I'm also thinking it would be nice if one could also write
my %Mode : Field(rw custom);
my %Mode : Field(rw); # generate accessor + mutator
my %Status : Field(ro); # generate only accessor
my %Connection : Field; # generate nothing
which would not create an accessor, but would test for the existence of one and complain if it didn't find one. That way the code becomes self documenting. Maybe a do-nothing private attribute would be nice to that end as well.
Makeshifts last the longest.