Good that you referred us to that thread. This example was the best.
To answer the original question, a solution in Perl might (with a disclaimer) look something like this:
# NOTE: untested pseudo-code below!
package Base;
sub new {
...
$self->{'requiredValue'} = getRequiredValue();
...
}
# ensure that my child classes do things properly
sub getRequiredValue { die "Subclasses must implement 'getRequiredValu
+e'" }
...
package Child1;
sub getRequiredValue { 42 } # you know it's the answer :-)
...
package Child2;
sub getRequiredValue { 360 }
...
package main;
my ($c1, $c2);
$c1 = Child1->new(); # Call trace looks like:
# 1. Base::new
# 2. Child1::getRequiredValue
$c2 = Child2->new(); # This call trace is different:
# 1. Base::new
# 2. Child2::getRequiredValue !!!
|