Larry Wall wrote: > On Wed, Aug 17, 2005 at 01:56:35PM +1000, Adam Kennedy wrote: > : > : >: If not a special form, should this work? > : >: > : >: my $pi is constant; > : >: $pi = 3; > : > > : >That could be made to work by defining constant to mean you can assign > : >to it if it's undefined. But then it gets a little harder to reason > : >about it if $pi can later become undefined. I suppose we could > : >disallow undefine($pi) though. > : > : Which would basically throw away compile-time optimizations relating to > : constants wouldn't it? > > You could still reason about it if you can determine what the initial > value is going to be. But certainly that's not a guarantee, which > is one of the reasons we're now calling this write/bind-once behavior > "readonly" and moving true constants to a separate declarator: > > my $pi is readonly; > $pi = 3; > > vs > > constant $pi = 3; > > or > > constant Num pi = 3; > > or if you like, even > > constant π = 3; > > Larry
OK, so then there is not "is constant" at all... just "is readonly"? Makes a lot more sense to me. Adam