dvergin has asked for the wisdom of the Perl Monks concerning the following question:
I'm looking for an idiom or pattern.
I have a subroutine. I'd like to call it and handle problems it might encounter. I could implement so that I can call it this way:
But I would much rather set things up so I can use the more concise:($success, $err_msg) = my_sub(); unless ($success) { # handle error condition using $err_msg }
or...unless ( my_sub() ) { # handle error condition }
Can I co-opt a global special error var to set on error in my sub? I've checked on a couple possibilities but haven't found anything promising. E.g. you can assign a number to $! but apparently only to cause it to point to an existing system error description if $! is then used in string context.unless ( $result = my_sub() ) { # handle error condition }
My religion forbids me to use globals of my own creation, so I'd like to avoid that if I can. ;-)
TIA, David
Back to
Seekers of Perl Wisdom