http://www.perlmonks.org?node_id=781598


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?

or

sub comparifier { no warnings 'uninitialized'; # because blessed() and reftype() can r +eturn undef. blessed($_[0]).reftype($_[0]).$_[0] eq blessed($_[1]).reftype($_[1]).$_[1] }
  • 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 ikegami (Patriarch) on Jul 21, 2009 at 17:56 UTC
    That can result in false positives.
    my $r = \@a; print comparifier($r, "ARRAY$r") ?1:0,"\n"; # 1

      True enough.

      sub comparifier { no warnings 'uninitialized'; # because blessed() and reftype() can + return undef. my $sep = pack 'N', rand 2**15; blessed($_[0]) . $sep . reftype($_[0]) . $sep . $_[0] eq blessed($_[1]) . $sep . reftype($_[1]) . $sep . $_[1] }
      Between the mind which plans and the hands which build, there must be a mediator... and this mediator must be the heart.