Subject: Re: [1.8.0] perl/Git.pm: moving away from using Error.pm module

From: Nick <[email-masked]>
Date: Mon, 21 Feb 2011 11:02:10 +0000

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