# New Ticket Created by Zefram # Please include the string: [perl #129002] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=129002 >
I can vacuously subclass Num and instantiate my new class with specific floating-point values, and this generally works. The subclassed numbers correctly compare == and !=== to the base Num of the same floating-point value: > my $three = (my class MyNum is Num {}).new(3e0); say $three.WHICH; say $three > == 3e0; say $three === 3e0 MyNum|3 True False But there's a problem with NaN. It correctly compares != to the base NaN (per usual numeric comparison semantics, and correctly has a different .WHICH reflecting its different class, but bizarrely it compares === to the base NaN: > my $mynan = (my class MyNum is Num {}).new(NaN); say $mynan.WHICH; say $mynan > == NaN; say $mynan === NaN MyNum|NaN False True === on NaNs should pay attention to the class, in the same way that === on non-NaN Num values does. -zefram