Ok, this is basically a repost of a part of Re^3: [Perl 6] Object methods on the fly?, in which I probably asked too many further side questions, all of which OT wrt the main thread. So I'm asking again here in the hope that it will have more visibility...

Taking as a basis the code TimToady posted in Re^2: [Perl 6] Object methods on the fly? just adding a my to make it a declaration:

my @array does role { method insert ($x) { @.push($x) unless any(self) eqv $x; } };

I though it would been nice to also initialise it, which is possible as I found rather than reading the docs as I probably should have, by trial and error under pugs:

my @array does role { method insert ($x) { @.push($x) unless any(self) eqv $x; } } = 1..5;

But to be fair this was not the first attempt, the latter really being with the assignment directly to the right of @array, which didn't work. OTOH although I can understand why the other way it's more consistent and why the proposed way it would be harder even to parse, or necessarily require parens, for one thing, I'm also sure most people would find it to be more intuitive, while as it is now I suspect most would just say: "for clarity, initialize it in a separate statement."


In reply to [Perl 6] Initialization within complex declarations by blazar

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.