http://qs321.pair.com?node_id=133702


in reply to Re: What is truth? (Curiosity corner)
in thread What is truth? (Curiosity corner)

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?
  • Comment on Re: Re: What is truth? (Curiosity corner)

Replies are listed 'Best First'.
Re: Re: Re: What is truth? (Curiosity corner)
by htoug (Deacon) on Jan 08, 2002 at 15:54 UTC
    "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.