In Array§

See primary documentation in context for routine unshift

multi sub    unshift(Array:D**@values --> Array:D)
multi method unshift(Array:D: **@values --> Array:D)

Adds the @values to the start of the array, and returns the modified array. Fails if @values is a lazy list.

Example:

my @foo = <a b c>;
@foo.unshift: 13 ... 11;
say @foo;                   # OUTPUT: «[(1 3 5 7 9 11) a b c]␤»

The notes in the documentation for method push apply, regarding how many elements are added to the array.

The routine prepend is the equivalent for adding multiple elements from one list or array.

In Any§

See primary documentation in context for method unshift

multi method unshift(Any:U: --> Array)
multi method unshift(Any:U: @values --> Array)

Initializes Any variable as empty Array and calls Array.unshift on it.

my $a;
say $a.unshift# OUTPUT: «[]␤» 
say $a;         # OUTPUT: «[]␤» 
my $b;
say $b.unshift([1,2,3]); # OUTPUT: «[[1 2 3]]␤»

In Nil§

See primary documentation in context for method unshift

method unshift(*@)

Warns the user that they tried to unshift onto a Nil or derived type object.

In role Buf§

See primary documentation in context for method unshift

method unshift()

Inserts elements at the beginning of the buffer.

my $ = Buf.new11235 );
$.unshift0 );
say $.raku# OUTPUT: «Buf.new(0,1,1,2,3,5)␤»

In IterationBuffer§

See primary documentation in context for method unshift

method unshift(IterationBuffer:D: Mu \value)

Adds the given value at the beginning of the IterationBuffer and returns the given value. Available as of the 2021.12 release of the Rakudo compiler.