in reply to how to return info from functions

Well, I wouldn't use your methods, but what you could do is:
rollback (methodfunction ())
and start your rollback function with
sub rollback { my $reason = shift // return; ... }