On Wed, Mar 26, 2003 at 09:19:42AM +1100, Damian Conway wrote:
> We then simply define the "=" in:
>
> sub foo ( ?$bar = $baz ) {...}
>
> to be an initialization (since it's on the declaration of the
> parameter). If the parameter has already be bound to some other
> container, then that other container isn't at the start of its
> lifetime, so the initialization doesn't occur. If it hasn't been bound
> during the call, then it's just starting its existence and the
> initialization does occur.
>
> And I don't think that allowing 20 different types of assignment in
> the parameter list of a subroutine actually helps at all. Especially
> since the vast majority of parameters in Perl 6 will be constant.
But does allowing even one "type of assignment" help? I'm thinking that
something like
sub foo (?$bar is init($baz)) { ... }
is better than an assignment with slightly different semantics than
usual.
Of course, I also think that instead of "state" we should do something
like this too:
sub CallMe {
my $count is kept is init(1);
print "you've called me $($count++) times\n";
}
Boy am I glad Larry is the language designer. :-)
-Scott
--
Jonathan Scott Duff
[EMAIL PROTECTED]