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; } }