OK, I think I see what you are saying. So essentially, my Base class does the following when the "do" method is called on it:
package Base;
use One;
use Two;
use Three;
sub do {
print "hi from Base\n";
Three::do;
Two::do;
One::do;
}
And my config file would determine which order to run the subroutines from each of the packages. Is that right?
UPDATE: Here is a version of the code above that is a bit more dynamic:
package Base ;
use One;
use Two;
use Three;
sub new {
my $class = shift;
bless { steps => [ qw(Three Two One) ] }, $class;
}
sub do {
my $s = shift;
print "hi from Base\n";
for my $step ( @{ $s->{steps} } ) {
$step->do;
}
}
So I think I got it from here. I just have to dynamically import the correct modules and populate the steps attribute with the config file during construction. Nice trick. Thanks!
|