# 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