That's the part that confuses me. What does the "class or object method?" check in the constructor have to do with the "method or function call?" question?

Because a common idiom used to "solve" the "class or object method?" question, can lead to odd behavior when a constructor is called as a function and not a method. Sure, in a perfect world that should never happen, but we dont live in a perfect world, and it would be niave to think your code would execute in a perfect world. Of course, you could also just not care, if they use it wrong, you absolve yourself of all responsability, it's their fault. But I am really talking about defensive coding practices here, ways to strengthen your code in real world scenarios so that it acts as expected in all situations, even those of incorrect usage.

I think these are two different things altogether, but the original post and your previous comment here make me wonder if you think they're different.

They are different things conceptually, but in reality they are 2 different "facets" of the same code. One the intended usage, the other, the un-indentend usage. Again, I am talking defensive coding here, if you don't care what happens when someone mis-uses your code, then this doesn't matter. Personally, I do care.

-stvn

In reply to Re^6: Is "ref($class) || $class" a bad thing? by stvn
in thread Is "ref($class) || $class" a bad thing? by stvn

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.