In the case the instance is not a positional-thing, it instantiates it as a new Array, otherwise clone the current instance. After that, it appends the values passed as arguments to the array obtained calling Array.append on it.

Append the provided Pairs or even sized list to the Hash. If a key already exists, turn the existing value into an Array and push new value onto that Array. Please note that you can't mix even sized lists and lists of Pairs. Also, bare Pairs or colon pairs will be treated as named arguments to .append.

my%h=a =>1;

%h.append('b', 2, 'c', 3);

%h.append( %(d =>4) );

say%h;

# OUTPUT: «{a => 1, b => 2, c => 3, d => 4}␤»

%h.append('a', 2);

# OUTPUT: «{{a => [1 2], b => 2, c => 3, d => 4}␤»

Note: Compared to push, append will slip in the given value, whereas push will add it as is:

my%hb=:a[42, ]; %hb.append:"a"=><a b c a>;

say%hb; # OUTPUT: «{a => [42 a b c a]}␤»

my%ha=:a[42, ]; %ha.push:"a"=><a b c a>;

say%ha; # OUTPUT: «{a => [42 (a b c a)]}␤»

This is a work in progress to document Raku (formerly known as Perl 6), and
known to be incomplete.