--- Jarkko Hietaniemi <[EMAIL PROTECTED]> wrote:
> On Fri, May 18, 2001 at 06:22:10AM -0700, Austin Hastings wrote:
> > Hmm. I can easily see this producing incomprehensible code when
> spread
> > across large systems. To wit, those developers used to "0 means
> false"
>
> Any feature is incomprehensible if one is not used to it. Pointers
> in C are incomprehensible if one has never met the concept before.
>
> As far as I understand one rationale behind the "false (in Perl 5
> terms)
> but true (in Perl 6 terms)" is that you can write code like this
>
> if ($retval = func(@args)) {
> # it worked ...
> } else {
> # it didn't ...
> # but we still can dig out more information
> # about the result ...
> print $retval.what_went_wrong, "\n";
> }
The statement I read was "true in any possible way", which implies that
if $retval had a "true" property, the result of func would be
irrelevant, since if func gave 0, "any possible way" would see the
"$retval is true" property and take the "it worked" route.
Thus, this code:
my $retval is true;
if ($retval = func(@args))
{
# it worked...
}
else
{
# nope...
print $retval.what_went_wrong, "\n";
}
would execute the "it worked" case for all values of func(@args), which
to me seems to be asking for trouble.
Of course, if the scalar result can't have associated properties ...
Or, if the properties of a scalar are reset on assignment (cringe) ...
Perhaps
> > semantics seeings a scalar that they just know has a 0 in it and
> > wondering why the branch isn't doing what they know it should.
>
> Free your mind-- detach the truth of a scalar from its '0 or "" or
> undef'
> nature.
New from O'Reilly's offshore division?
"Perl CookBook, 4th edition. Crack pipe and 6 rocks included!"
I don't mind the presence of these potentially horribly confusing
thingys. After all, thanks to this list I'll be on the right side of
the learning curve. However, I don't think that "Poo, poo." is the
correct answer to "How about maintainability?" on anybody's multiple
choice exam.
=Austin
__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/