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]

Reply via email to