Hope I understood your problem correctly.
You could store your program calls in an array. Not sure how you are calling the programs, but let's say you are using system in a simplistic world:
for my $prog (@programs) {
system($prog)
}
To disable one of the programs, just delete the element from the array. The 'step number' is the index to the array. If the code is more complex then put each step in a subroutine and have an array of subroutine references. The steps to run (or omit) could be passed on the command line.