develooper Front page | perl.perl5.porters | Postings from June 2022

Re: $@ alternative WAS Re: Core exception types [was: Re: Pre-RFC: Improve “wide character” warnings]

Thread Previous | Thread Next
From:
Dan Book
Date:
June 8, 2022 17:38
Subject:
Re: $@ alternative WAS Re: Core exception types [was: Re: Pre-RFC: Improve “wide character” warnings]
Message ID:
CABMkAVV8ZUv-=N2qVc-y=Wd2gsxL=m6_7SjTShhyx4o+wAc46A@mail.gmail.com
On Wed, Jun 8, 2022 at 1:29 PM Felipe Gasper <felipe@felipegasper.com>
wrote:

>
> > On Jun 8, 2022, at 12:25, Paul LeoNerd Evans <leonerd@leonerd.org.uk>
> wrote:
> >
> > We can't change the existing behaviour of $@, but we *could* create
> > some other variable, say, ${^EXCEPTION}, that would receive these new
> > objects, and say that actually the catch var uses that instead:
>
> An interesting idea. I guess all of the available punctuation variables
> are taken, though?
>
> It would be a shame if, to access the new-hotness, one had to work harder
> to type ${^EXCEPTION} as opposed to just $@.
>
>
As was shown in the example, you don't actually use the proposed variable
yourself in try/catch as it sets up a lexical variable for the scope of
catch.

As Ovid indicated, just making $@ a stringifying object would prevent
> breakage except in esoteric cases. If it’s behind a feature flag then
> that’ll make those cases all the rarer. So I, at least, don’t see why there
> seems to be such resistance.
>
> It’s already hard for neophytes to juggle $@, $!, $?, and $^E. Adding a
> 5th “error variable” seems likely to worsen that.
>
> As an alternative: what if, under `use feature 'errorobject'`, $@ were the
> object, but without the feature it’d be the string? So the feature would
> only change how eval populates $@.


This is not possible, because it is not populated lexically.

-Dan

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About