--- 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