Are there any other examples like this that I can follow?
Yes! See the comprehensive
is_equal method in perl5i::Meta (
source). That's what people usually have in mind when they talk about equality.
All the solutions shown in this thread involving references are not general enough due to wrong assumptions, see FAQ in Object::ID. (I think the original Python behaviour also suffers from the problem, but I haven't checked.) Again, the correct solution is also part of perl5i (source).
perl5i is full of "done right" pieces of code. Monks, study it, even if you never intend to run it.