in reply to What is the best way to compare variables so that different types are non-equal?
For what other pairings of data types does eq ignore type?
eq pays no attention to the type whatsoever. eq stringifies its operands and compares those strings.
>perl -le"print( undef eq '' )" 1 >perl -le"print( 123 eq '123' )" 1 >perl -le"$r=\$s; print( $r eq sprintf('SCALAR(0x%x)', 0+$r) )" 1 >perl -le"print( qr/a/ eq '(?-xism:a)' )" 1 etc
I know there is a way to overload operators but I was under the impression that one had to "use overload" to empower it
You use use overload to add overloading to a class, not to decide whether or not overloading will occur.
Regex pattern objects are magical. Overloading doesn't even come into play.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: What is the best way to compare variables so that different types are non-equal?
by kyle (Abbot) on Jul 19, 2009 at 16:31 UTC | |
by LanX (Saint) on Jul 19, 2009 at 22:17 UTC | |
by kyle (Abbot) on Jul 20, 2009 at 00:48 UTC | |
Re^2: What is the best way to compare variables so that different types are non-equal?
by LanX (Saint) on Jul 19, 2009 at 23:31 UTC | |
by ikegami (Patriarch) on Jul 20, 2009 at 08:09 UTC |
In Section
Seekers of Perl Wisdom