I have used weak refernces in one perl application I wrote some time ago, because the client insisted he would have circular references.

In my opinion, this is almost always both undesirable and easily avoidable. There is a huge difference in beeing able to query (even efficiently) for related objects, and litter direct references all about and in both directions. Most you get out of going down that road is a huge pain trying to assess correctness.

I'm familiar with the kind of c++ pointer design you mention, and in C++ you will sometimes need them, but most often I think one should be able to do without if one otherwise arrange things so that you tell your objects to act upon input, in stead of doing things to them directly.

But, there is so many design considerations I have not participated in or fully understood, so I am interested in seeing cases where it might make sense.


In reply to Re^3: How to explicitly destroy an object so that all other references to it would become false? by stiller
in thread How to explicitly destroy an object so that all other references to it would become false? by bdimych

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.