in reply to Best method for failure recovery?

What's wrong with:

my $recover = $opt_r; first() unless $recover>1; second() unless $recover>2;
etc. And then simply writing a numeric value to the recovery file.

I'd hope this was readable by anybody who knows English, without needing to know perl at all.

Incidentally, with your setup, I think that you're not going to set $rec_file_name, if your recovery flag is set, and since you've declared it with my, it's not going to be visible within the subroutines anyway.

Of course, you'd find this when writing production code: remember -w and strict are your friends :-)