package Base ; sub new { my $class = shift; for my $mod (@_) { eval "require $mod"; } bless { steps => \@_ }, $class; } sub do { my $s = shift; print "hi from Base\n"; for my $step ( @{ $s->{steps} } ) { $step->do; } }