I believe constructors are a special case that, if not promoted to being a keyword, should be close in precedence to keyword in terms of compile-time parsing. Regardless of the Perl5 doc misnomer of "indirect object," which we call more correctly "dative" for builtins like print() and tie(), the constructor in OOP is not the same as a dative and is more like this, to me: I am advocating for "what makes the most sense to a 'native' speaker/programmer" in the case of the constructor being NOT an indirect object but like the way both French and English says "nouveau riche" in the same way. This is what the French might call the English people (and later the Americans) during the Industrial Revolution. If you do what Wikipedia does and transliterate this, you would say "new rich" meaning new is an adjective qualifying the noun rich. Almost all of the time in other Romance languages besides English, the adjective goes after the noun ("mi camisa negro"). I believe a named constructor should behave like the way a *native* English speaker would translate this phrase, the more correct form as "newly rich" and not "new rich," maintaining that the qualifier goes before the noun. The point of the "indirect object syntax," which is a misnomer, in the case of constructors is a native speaker does not translate the phrase "nouveau riche" back into English. The phrase is well understood as-is in English. Thus, the constructor is not like any other method and, as someone has already pointed out, in this case we explicitly mean that the object does not call itself. You could have new, spawn, clone, gimmea, nextlike, &c. be explicit constructors and not subclassed or such. I am just saying the idea of this type of syntax is to raise our sophistication in the language, meaning we don't want people to "translate back" something for which we actually do want to be well understood in context syntactically, semantically, and overall grammatically.

In reply to Re^2: No (ambiguous) Indirect Object Notation in Perl 6 by Anonymous Monk
in thread Tim O'Reilly on Perl by fauria

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.