Rules / Types, classes & roles / composite

Stash Reference

Table for "our"-scoped symbols

What it is #

class itself, via C<.can> and C<.^methods>.

Examples, run three ways #

Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.

1 no-output · 1 rakupp-differs · 1 unrun

class Stash is Hash { }

Not executed: the documentation states no expected output for this example.

class Boring {
    class Nested { };
    our sub package_sub { }
    my sub lexical { };
    method a_method() { }
}
say Boring::.^name;             # OUTPUT: «Stash␤»
say Boring.WHO === Boring::;    # OUTPUT: «True␤»
Documentation
Stash
True
Rakudo
Stash
True
Raku++
Boring::
False

Raku++ disagrees with both the documentation and Rakudo — a defect.

say Boring::.keys.sort;         # OUTPUT: «(&package_sub Nested)␤»
say Boring::<Nested>;           # OUTPUT: «(Nested)␤»