So I would like to access the hashref in base_class but the contents should be specific to the calling class.
I'm a little confused about what you're doing. You want each change submitted to the base_class's
%parameter_config for confirmation; after that, the actual values get stored in each subclass's own %parameter_config, right? If so, just change your accessors so that before fiddling with %sub_class::parameter_config it first messes with %base_class::parameter_config, to do whatever checking/storing you want done there, and then store the data in each individual subclass's hash. (Or, if you follow your new approach, replace "fiddling with %base_class::parameter_config" with "call validation methods from ValidateNewParameter". Same principle.)
I need the %parameter_config hash before new() is called, because new() needs this information to figure out, if the parameters given to new() are correct. So I need code I can run when the class is loaded.
OK, so put something like this at the start of each subclass:
use vars qw(%parameter_config); # or 'our' but NOT 'my', not if you
# use the approach I gave before
%parameter_config = &base_class::parameter_config;
And now each subclass has its own copy of %parameter_config. Just
make sure that &base_class::parameter_config returns a copy of the hash.
-- Frag.
--
"It's beat time, it's hop time, it's monk time!"
|