Re: [1.8.0] perl/Git.pm: moving away from using Error.pm module
- From
- Nick <oinksocket@letterboxes.org>
- Date
- Feb 21, 2011, 11:02 UTC
- Message-ID
- <4D624632.80904@letterboxes.org>
- In-Reply-To
- <7v4o7xluph.fsf@alter.siamese.dyndns.org>
On 21/02/11 07:20, Junio C Hamano wrote:
> If we are going to change things so that everybody uses a
> more traditional "eval {}; if ($@) { ... }", it would be a welcome change
> from my point of view.A small aside - note the "Dangers of using $@" described here:
http://www.socialtext.net/perl5/exception_handling
To paraphrase, this:
eval { stuff ; 1} or do { handle_exception };is marginally safer than:
eval { stuff }; if (defined $@) { handle_exception }because it is possible that $@ can be modified (say, by a DESTROY method) before the if clause sees it. The former idiom does not stop that, it just means your exception handler is executed reliably.
Normally it is not a problem, but this is still something worth knowing.
N