On Tue, Feb 15, 2005 at 09:34:31PM -0600, Patrick R. Michaud wrote: > On Tue, Feb 15, 2005 at 07:20:53PM -0600, Jonathan Scott Duff wrote: > > > Patrick R. Michaud wrote: > > > >OTOH, what happens with...? > > > > > > > > sub nofun($x is rw) { > > > > $x += 2; > > > > } > > > > > > > > $y = 3 | 4; > > > > nofun($y); > > > > That's either an error ("Can't modify constant") or the same as 5|6. > > The former makes the most sense to me at the moment. > > Hmm. $y is definitely not constant -- that's how I was able to do > the assignment in the first place. And "is rw" certainly doesn't > sound like "constant" to me. :-)
No, no, I was thinking that $y is composed of constants 3 and 4. The autothreading happens such that the call to nofun() is the same as if you'd written: 3 += 2; 4 += 2; which are attempts to modify those constants. This is assuming that the Any type is inconsistent with the Junction type; otherwise it's just the same as $y += 2; which should certainly yield 5|6 $y += 2 -> $y = $y + 2 -> $y = (3 + 2)|(4 +2) -> $y = 5|6 -Scott -- Jonathan Scott Duff [EMAIL PROTECTED]