if ( do_each_until_false( \&function1, \&function2, sub {require Foo; Foo::bar()}, \&function3, # etc. ) ) { print "All done\n"; } else { print "FAILED\n"; }