in reply to Re: What is the best way to compare variables so that different types are non-equal?
in thread What is the best way to compare variables so that different types are non-equal?

Regex pattern objects are magical. Overloading doesn't even come into play.

Magical is right. This took me by surprise.

use overload; use Scalar::Util qw( blessed ); use Test::More 'tests' => 4; my $rx = qr/a/; ok blessed $rx, 'Regexp is blessed'; ok ! overload::Overloaded( $rx ), 'Regexp is overloaded'; ok ! overload::Method( $rx, q{""} ), 'Regexp has q{""} overloaded'; isnt "$rx", overload::StrVal( $rx ), 'StrVal of regexp isnt regexp stringified';
  • Comment on Re^2: What is the best way to compare variables so that different types are non-equal?
  • Download Code

Replies are listed 'Best First'.
Re^3: What is the best way to compare variables so that different types are non-equal?
by LanX (Saint) on Jul 19, 2009 at 22:17 UTC
    ok ! overload::Overloaded( $rx ), 'Regexp is overloaded'; ok ! overload::Method( $rx, q{""} ), 'Regexp has q{""} overloaded';
    I'm confused shouldn't it say "is not" and "has not"?

    Cheers Rolf

      You're right. I originally wrote the descriptions to match the tests, and then I was surprised when I ran them (they failed). After that, I reversed the tests and forgot to rephrase the descriptions.