When I need a subroutine to modify one (or more) scalar variables I usually use a 3rd method: I send the value back in the return.
It seems that you want the subroutine to return a status. But even then couldn't you use undef as a failure signal?
unless( defined( $variable= foo( $variable))) die "horrible death: $sn +afu::ERROR"; package snafu; my $ERROR; sub foo { # interesting things happen if ( $things_worked ) { return $baz; else { $ERROR= "horrible death"; return undef; }
I actually very rarely modify $_[0] and al. I don't like side effects and I prefer to see clearly which variables are modified by a function.
In reply to Re: Pass by reference: is it good form to grope @_?
by mirod
in thread Pass by reference: is it good form to grope @_?
by mikfire
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |