--- Damian Conway <[EMAIL PROTECTED]> wrote:
> Various folks have suggested that the default assignment syntax:
> 
>      sub foo(?$bar is copy = 1) {...}
> 
> be considered merely a shorthand for something like:
> 
>      sub foo(?$bar is copy is default(1)) {...}
> 
> thereby allowing:
> 
>      sub foo(?$bar is default(1) is copy ) {...}
> 
> and hence (mirabile dictu):
> 
>      sub foo(?$bar = 1 is copy ) {...}
> 
> 
> The design team has already considered this idea, and my problem
> with it then (and now) is that it's inconsistent with other forms
> of variable declaration:
> 
>          my sub foo( ?$bar is constant = 1 ) {...}   # OKAY
>          my           $bar is constant = 1;          # OKAY
> 
>          my sub foo( ?$bar = 1 is constant ) {...}   # OKAY
>          my           $bar = 1 is constant;          # KABOOM!
> 
> and thereby lays a cognitive trap for programmers.
> 

1- Good catch, and all, but that's the kind of thing (like @ in
strings) that gets a warning emitted from the compiler -- not the kind
of thing that makes it prohibitive to support the feature.

> I don't know...maybe I'm worrying too much.
> But then, that's part of my job. ;-)

2- Yeah! ... umm, are we *paying* you for this?

=Austin

Reply via email to