I noticed this a while ago, but didn't really think that much of it at the time. The value, "0E0" evaluates numerically as zero, but is also true. Is this an example of "deep magick" in Perl? I got caught up on this while using the dbi to run some queries. It seems like the whole point (from the docs) was to create a numerical zero, which evaluates to true, so that you can return true (as in a query was successful, didn't cause any errors) but doesn't return any results.
Can anyone confirm or deny this?
on a slightly related note, does anyone know why 0E0 + 1 doesn't stay in scientific notation? It seems counter intuitive to me, but my intuition has been doing funny things lately.
my $oero = "0E0";
my $zero = "0";
print "oero ($oero) true\n" if($oero);
print "oero ($oero) defined\n" if(defined($oero));
print "zero ($zero) true\n" if($zero);
print "zero ($zero) defined\n" if(defined($zero));
print "zero eq oero\n" if ($oero eq $zero);
print "zero == oero\n" if ($oero == $zero);
print "oero+1: ", $oero+1, "\n";
print "oero+zero: ", $oero+$zero, "\n";
print "oero+oero: ", $oero-$oero, "\n";
oero (0E0) true
oero (0E0) defined
zero (0) defined
zero == oero