On Sat, Feb 12, 2005 at 01:03:26AM -0600, Rod Adams wrote: > I also find the following incredibly disturbing: > > >perl6 -e "$x = 'cat'|'dog'; say $x;" > dog > cat
Would that happen though? What's the signature of C<say>? I think it's something like multi sub *say ($stream = $*OUT: *$data) { ... } so autothreading wouldn't happen anyway as S9 says the slurpy array/hash aren't autothreaded. Also, for user-defined subs I'd imagine that you could give perl a hint not to autothread it with perhaps a "is nonthreading" trait. > Getting iterated executions of a statement without explicitly iterating > it bothers me greatly. It's funny how one man's feature is another man's bother :-) > So, if we are not having Sets, how exactly does one tell if what they > are holding is a single value scalar, or a multi-value junction? Using the same introspection capabilities that let's you tell if that scalar you have is an object of some sort I'd imagine. > Can a junction hold values of completely different types, or just > different values of the same type? Given perl's tendency towards permission rather than restriction, I'd guess that you could have a junction composed of almost anything. Consider: any(3,"fred",@foo, { $^x*$^x}) Now, what that *means* is another story :-) > If evaluation of one value of a junction causes an error, is $! now a > junction as well? How do you "evaluate one value of a junction"? I would think that the junctive disposition of $! would depend on whether that "one value" were a junction or not. If not, then you just get $! when that one particular value is evaluated (like 3/any(2,0,3) would generate a junction of any(3/2,3/0,3/3) with that 3/0 waiting to be realized (evaluated) and once it is, then $! would hold the "divide by zero") In my current sleep-deprived state I think that you're more likely to get a junction of various $! valus than have $! be a junction of values (unless you're setting it explicitly) -Scott -- Jonathan Scott Duff [EMAIL PROTECTED]