Your skill will accomplish what the force of many cannot |
|
PerlMonks |
Re: variable set to 0 ? 0 : 1by Aristotle (Chancellor) |
on Sep 06, 2002 at 06:05 UTC ( [id://195585]=note: print w/replies, xml ) | Need Help?? |
The explanation has already been given exhaustively, but I want to expand a bit on semantics here. Returning zero in Perl is usually a bad meme. It is ok if you actually meant to return a numeric zero, but if you mean to return "false", the Perlish way is to return an empty list <update> in list context and undef otherwise. </update> This is because by returning 0 you return a single-element list, which evaluates to true in list context. The code would then look like this: or maybe better return 1 if $status == 0; return;Another pitfall may or may not be the == 0. Is it meant to test falseness? If so, it is not precise. Perl understands the notion of an undefined value <update> and also considers a defined but empty string as well as a literal string "0" to be false </update>, which are not the same as zero, so this test is broken if it means to check falseness. In all likelihood, the programmer there should have written
Updated: thanks ++Flexx. Moved one code example, added a few small but important bits. Makeshifts last the longest.
In Section
Seekers of Perl Wisdom
|
|