On Thu, Aug 24, 2000 at 10:10:49AM -0700, Peter Scott wrote:
> At 12:07 PM 8/24/00 -0500, Jonathan Scott Duff wrote:
> > > catch Alarm => { ... }
> > > catch Alarm, Error => { ... }
> > > catch $@ =~ /divide by 0/ => { ... }
> >
> >The => here seems like useless syntax to me.
>
> Au contraire... it emerged from our discussion of this case:
>
> > catch EXPR { ... }
>
> How should the parser disambiguate
>
> my ($hash,%hash);
> try { ... } catch $hash { ... }
>
> ? But if we require the comma, we know it's parseable, because map can do it.
map is a slightly different animal because the block comes first.
> But I initially wanted to do without the => ... unfortunately that would
> require another keyword to handle the EXPR case and it didn't seem worth it.
Not necessarily.
catch { EXPR } { ... } # probably not going to work though
catch (EXPR) { ... } # this will work
catch do { EXPR } { ... } # this will work
That last one was proposed in the RFC for multi-statement expressions,
why not for single statement expressions too? That first one may work
with Damian's forthcoming multi-method RFC, but I don't know.
-Scott
--
Jonathan Scott Duff
[EMAIL PROTECTED]