On Fri, May 13, 2005 at 11:43:42AM +0300, Markus Laire wrote: : Perhaps spec should be changed so that :p means :p(bool::true) or :p(?1) : and not :p(1)
I'm still not sure I believe in booleans to that extent. I suppose we could go as far as to make it :p(0 but true). Actually, it's more like "undef but true", if you want to be able to distinguish sub foo (+$p = 0) { # no :p at all say "true" if $p; # :p with no argument $p //= 42; # :p with no argument ... } Or maybe it's something more like "1 but assumed". In any event, it'd be nice to be able to distinguish :p from :p(1) somehow. Maybe the Bool type is good enough for that. The bool type probably isn't unless we depend on autoboxing to turn it into a Bool consistently. Larry