# New Ticket Created by  Zefram 
# Please include the string:  [perl #128947]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=128947 >


> ("a|Str|b" => "c").perl
"a|Str|b" => "c"
> ("a" => "b|Str|c").perl
:a("b|Str|c")
> ("a|Str|b" => "c").WHICH
Pair|Str|a|Str|b|Str|c
> ("a" => "b|Str|c").WHICH
Pair|Str|a|Str|b|Str|c
> ("a|Str|b" => "c").WHICH === ("a" => "b|Str|c").WHICH
True
> ("a|Str|b" => "c") === ("a" => "b|Str|c")
True
> ("a|Str|b" => "c") cmp ("a" => "b|Str|c")
More

These two pairs are behaviourally distinct, as shown by their .perl
outputs, but they get the same .WHICH strings.  Presumably as a result,
=== claims them to be equivalent, though cmp correctly shows them to
be different.  This is all very similar to [perl #128943] concerning
the Set class.  Also, like Set.WHICH, Pair.WHICH on these pairs returns
plain strings as Str objects, rather than ObjAt objects.

-zefram

Reply via email to