Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: My habitual errors

by ptum (Priest)
on Apr 04, 2007 at 17:12 UTC ( #608328=note: print w/replies, xml ) Need Help??

in reply to My habitual errors

Even after all this time, I still sometimes inadvertently use assignment instead of testing for numeric equality:

if ($first = $second) { # do something } else { # this code is never executed since assignment to $first always retu +rns true }

Sigh. It is dumb, but I did it just last week.

Update: as pointed out by jdporter, in cases where $second evaluates as false, the resulting assignment to $first will also return false. While this rarely happens to me (since I'm usually trying to evaluate numerical equality between non-zero variables), it is an important distinction.

Replies are listed 'Best First'.
Re^2: My habitual errors
by imp (Priest) on Apr 04, 2007 at 17:29 UTC
    For comparisons that have a constant I keep that value on the left hand side to avoid accidental assignment. Doesn't work for expressions that use two variables of course.
    if (0 == $n) { } elsif (1 == $n) { }
Re^2: My habitual errors
by jdporter (Canon) on Apr 04, 2007 at 17:33 UTC
    # this code is never executed since assignment to $first always returns true

    No; it will be false when $second is false.

    A word spoken in Mind will reach its own level, in the objective world, by its own weight

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://608328]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2021-10-20 12:14 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (81 votes). Check out past polls.