On Thu, 17 Oct 2002, Adam D. Lopresto wrote: : Then again, it always seemed odd that you combine two flags with | to turn them both : on). There could probably be a bitwise type that would overload superpositions : to do bitwise math instead... : : my Bitwise $a = 1; #woohoo, $a and $b are no longer magical! : my Bitwise $b = 3; : : print $a & $b; #prints 3 : : So if you really need to do a lot of bitmath, you use the special types, and : otherwise you can be barely aware that they exist.
Yeah, I've been thinking about that approach for several days now. The main problem I see with it is that sometimes you want to view an integer as a superposition, and sometimes not. Someone might be surprised when they use $b in a case and discover it's matching 1|2 rather than 3. : sysopen($handle, $filenmae, O_CREAT & O_RDRW); Nothing says that actually has to do bit math! This could also be made to work: sysopen($handle, $filenmae, "create" & "rdrw"); Could even make something like this work: sysopen($handle, $filenmae, "exists" & "append" | "create" & "rdrw"); One could go as far as to make a superposition of lvalues do unification. But I think we need to keep superpositions separate from bitops because of the and/or confusion you noted. Larry