On Thu, Aug 11, 2005 at 04:47:49PM +0200, TSa wrote: : > defined($spot); # false!? : : true! Even for my $spot = ::Dog because when my is evaluated the : name ::Dog has be be bound, AUTOLOADED or by whatever means become : available.
What does binding have to do with definedness? In Perl 6 the object itself decides if it's defined regardless of how or where it's bound. That's how we get interesting values of undef. The recent proposal only tweaks that idea to unify typed undefs with interesting undefs so that an unthrown exception can also be an abstract (albeit unsuccessful) IO or Dog or whatever, so that you don't have to play games with junctions to get undef into typed variables. In other words, $spot is not successful, but that can be either because we tried and failed, or because we haven't tried yet. That's the unification I'm looking at. Larry