Hilmar Lapp wrote:
> Keep in mind that code such as
>> if ($ann) { ... }
>> is mostly not b/c someone wanted to use overloading, but rather
> someone was lazy and really meant to say
>> if (defined($ann)) { ... }
>> In the absence of eq overloading, these will behave identically. So
> if you leave the exceptions in it is sort-of policing lazy
> programmers, which I guess is fine in principle, but is guaranteed to
> trip up a lot of script code. I'd take it out if you're reasonably
> sure that at least within BioPerl itself those lazy programming
> incidents are removed.
if ($ann) { ... }
and
if (defined($ann)) { ... }
are not the same.
if ($ann)
is evaluated false for an empty string like
$ann = '';
and for a value of zero, i.e.
$ann = 0;
while
defined($ann)
returns true in these 2 cases.
Florent