Yeah, it does indeed. I'm not quite sure why "0 but true" is often preferred. Maybe because it's more explicit about its intention? | [reply] |
"0E0" is used by the DBI (and DBD's) for eg. $sth->execute when the SQL-statement processed 0 rows but did not error.
This allows constructions like my $rows=$sth->execute or die "SQL error" (
Of course this would be expressed better using $dbh->{RaiseError} = 1).
The relevant part of the DBI documentation states:
For a non-`SELECT' statement, `execute' returns the number of rows
affected, if known. If no rows were affected, then `execute' returns
"`0E0'", which Perl will treat as 0 but will regard as true. Note that
it is not an error for no rows to be affected by a statement. If the
number of rows affected is not known, then `execute' returns -1.
| [reply] [d/l] [select] |