sub head(*$head, *@tail) { return $head } sub neck(*$head, *$neck, *@tail) { return $neck } sub tail(*$head, *@tail) { return @tail } my @args = (1..5); # $head parameter receives 1 # @tail parameter receives [2, 3, 4, 5] head(@args).say; # $head parameter receives 1 # $neck parameter receives 2 # @tail parameter receives [3, 4, 5] neck(@args).say; # $head parameter receives 1 # @tail parameter receives [2, 3, 4, 5] tail(@args).say;