In Subscripts§

See primary documentation in context for method ASSIGN-POS

multi method ASSIGN-POS (::?CLASS:D: $index$new)

Expected to set the element at position $index to the value $new. Implementing this is entirely optional; if you don't, self.AT-POS($index) = $new is used instead, and if you do, you should make sure it has the same effect.

This is meant as an opt-in performance optimization, so that simple assignments like @numbers[5] = "five" can operate without having to call AT-POS (which would have to create and return a potentially expensive container object).

Note that implementing ASSIGN-POS does not relieve you from making AT-POS a rw method though, because less trivial assignments/modifications such as @numbers[5]++ will still use AT-POS.