On Thu, 2004-06-24 at 14:17, Smylers wrote:
> Because the above would've been insane: saying that C<sif ($x)> treats
> $x as a string would be pretending that C<if> always treats its
> arguments as numbers, but something such as C<if ($x eq 'frog')> doesn't
> have any numbers in it.

Doesn't it?

   perl -e '$x = "frog"; print(($x eq "frog") . "\n");'


> No; none of the above strings are "interchangeable".  All of those
> strings have the numeric value of zero when treated as a number, but
> then so does the string "crumpet".  Being interchangeable involves
> swapping them either way round.

Erm, we're talking about boolean context, right?  All those strings
evaluate to true.  I'm asking about being interchangeable when used in a
conditional statement; of course they're not interchangeable with each
other.  :)


> Larry's plan to drop this in Perl 6 for
> things explicitly typed as strings sounds sensible to me.

That's the plan?  Happy day!  I was not aware of that.  Because I didn't
see anything about this in Perl 6 Essentials, I just figured that
Perl5's '0'==undef was being brought forward into Perl6.  The horror! 
Sorry for the bad assumption.  :)

    - Scott



Reply via email to