Sorry, I think I have over-reacted.

As I wrote before, everthing is a reference - except containers typed as native types, which exist for speed reasons (but aren't implemented in any compiler yet).

The typical use cases for explicit references in Perl 5 were nested data structures, creating aliases, and changing remote data.

For the former, you don't need any references in Perl 6 - you can simply insert a hash or array into an hash or array. In Perl 6, the question of whether a construct flattens into a list is orthogonal to references, and is mostly a syntactic distinction.

Aliasing is now done via binding, $a := $b aliases the variables $a and $b. Importing subroutines uses that mechanism under the hood.

Changing data that came in from somewhere else is done by an assignment, and the container is marked as is rw, for example

sub swap($a is rw, $b is rw) { ($a, $b) = ($b, $a) }

Object attributes also can have the is rw trait.

(People also sometimes say that a Capture is something like a fat reference, but I disagree; it is just a type of object that can hold other objects, and isn't different from user-defined types in that way, so I'm not going to elaborate on them).

Is there anything else you need to know for a coherent picture of references?

Perl 6 - links to (nearly) everything that is Perl 6.

In reply to Re^5: Reference in Perl 6 by moritz
in thread Reference in Perl 6 by Anonymous Monk

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.