in reply to Interesting OO/package conundrum...

You can use a method:

package Foo; my %Required; BEGIN { @Required{qw(This That TheOther)}= (1)x3; } sub _GetRequired { return \%Required; } # ... package Base; sub _GetRequired { return {}; } sub isRequired { my $self = shift; my $attr = shift; return $self->_GetRequired()->{$attr}; }
(Updated.)

        - tye (but my friends call me "Tye")