Re: Zero equals pipe??



ilya2@xxxxxxx wrote:

My perl program had some conditional statements that checked whether a
given characters was a pipe "|" or not. The program behaved strangely,
and I quickly realized it was treating pipes and zeros equivalently. To
make sure I was not going insane, I put the following checks:

if ( '1' == '|') { ... some statement ... }

if ( '0' == '|') { ... another statement ... }

By any sensible measure, both statements must return FALSE.


== is for numbers, eq is for strings, which makes sense.

What makes even more sense, if you're a newbie to Perl, put on top of your
script:

use strict;
use warnings;

Since then you would have seen:

Argument "|" isn't numeric in numeric eq (==)

--
John Experienced Perl programmer: http://castleamber.com/

Perl help, tutorials, and examples: http://johnbokma.com/perl/
.



Relevant Pages

  • Re: Zero equals pipe??
    ... given characters was a pipe "|" or not. ... and I quickly realized it was treating pipes and zeros equivalently. ... Second one returned TRUE. ... the numerical values of your three strings are ...
    (comp.lang.perl.misc)
  • Re: Zero equals pipe??
    ... given characters was a pipe "|" or not. ... and I quickly realized it was treating pipes and zeros equivalently. ... My guess is that you do not want to do a numerical comparison. ... Use 'eq' for a stringwise comparison. ...
    (comp.lang.perl.misc)