Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Python 'is' command

by daxim (Curate)
on Aug 16, 2019 at 10:28 UTC ( #11104561=note: print w/replies, xml ) Need Help??


in reply to Python 'is' command

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.

Replies are listed 'Best First'.
Re^2: Python 'is' command
by syphilis (Bishop) on Aug 16, 2019 at 11:21 UTC
    All the solutions shown in this thread involving references are not general enough due to wrong assumptions, see FAQ in Object::ID.

    Really ? ... *all* of them ?
    I think the OP is concerned about determining whether 2 existent objects are the same, not whether a current object has the same "address" as an obsolete one.
    So long as 2 reference addresses of currently existent objects are being compared, then I don't really see the relevance of the FAQ in Object::ID.

    Cheers,
    Rob
Re^2: Python 'is' command
by LanX (Cardinal) on Aug 16, 2019 at 11:34 UTC
    > see FAQ in Object::ID

    Interesting but not relevant here.

    The OP wants to compare two existing objects with an is operator.

    References can't be reused if the objects haven't been garbage collected yet.

    On a side note: why should one want to keep track of numeric or string representations of ref-adresses?

    Keeping the original ref in a hash value would keep it protected from destruction.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11104561]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2020-10-01 15:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (15 votes). Check out past polls.

    Notices?