in reply to how to write a modified return() call?

As far as I know, there isn't a pure Perl way of returning from *two* stack frames - that is, bypassing the wishes of your calling code. However, you may be able to write something like (untested):
my $start_with = another_value() or do { @_ = ("Could not get another value"); goto &wreturn; }; sub wreturn {warn @_}
But I don't think that really solves the issues you have.